: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.

Performance/MemShrink

From MozillaWiki
Jump to: navigation, search

MemShrink is a project that aims to reduce the memory consumption of Firefox (on desktop and mobile) and Firefox OS. There are three potential benefits.

  1. Speed. Firefox will be faster due to less cache pressure, less paging, and fewer/smaller GC and CC pauses. Changes that reduce memory consumption but make Firefox slower are not desirable.
  2. Stability. Firefox will suffer fewer aborts/crashes due to virtual or physical memory exhaustion. The former is mostly a problem on 32-bit Windows builds with a 2GB or 4GB virtual memory limit, the latter is mostly a problem on mobile devices that lack swap space.
  3. Reputation. Fewer people will complain that Firefox is a memory hog and that Mozilla ignores memory usage.

This blog post describes these benefits in more detail.

There are two main ways to reduce memory consumption.

  1. "Slim down" memory usage, e.g. make data structures more space-efficient.
  2. Avoid "leaks". This loose use of the term (which is used throughout this document) includes:
    • True leaks, where memory is lost forever.
    • Lifetime issues, where memory is not reclaimed until you close the page/tab/window/process.
    • Collection heuristic issues (e.g. GC is too infrequent).
    • Bad cache algorithms and poorly tuned caches.
    • Fragmentation.

Leaks are generally more important, because they are more likely to lead to horrible performance.

Meetings

Meetings happen every second Tuesday at 2pm Pacific time (countdown in your timezone)

  • Dial-in: conference# 95346
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 95346
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 95346
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 95346
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 95346
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 95346
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 95346
    • UK/London: +44 (0)207 855 3000, x92 Conf# 95346
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 95346
  • Vidyo: Memshrink
  • IRC: #memshrink
  • Etherpad: memshrink (copied to wiki after the meeting)

Bug Tracking

Bugs tracked by the MemShrink project are prioritized by adding one of "MemShrink:P1", "MemShrink:P2" or "MemShrink:P3" to the whiteboard.

Some other interesting bug lists that overlap with the ones above.

Tools

All the tools that we use to measure and improve memory usage are described on MDN, under "Memory profiling and leak detection tools".

Meeting Minutes, Progress Reports and Presentations

We no longer take meeting minutes nor make progress reports, but the meetings still happen. Brief MemShrink updates are given in the minutes of the weekly Platform meeting (wiki, blog). And nnethercote still blogs about major MemShrink occurrences.

Here is the historical record from when we did take minutes and make progress reports.

Date Minutes Progress report
2014-06-16 - MemShrink's 3rd Birthday (includes the fourth "Big Ticket Items" list)
2013-11-26 - The final progress report
2013-10-29 - Week 121--124
2013-09-30 - Week 117--120
2013-09-03 - Week 113--116
2013-08-06 - Week 109--112
2013-07-09 - Week 105--108
2013-06-14 - MemShrink's 2nd Birthday (includes the third "Big Ticket Items" list)
2013-06-11 - Week 103--104
2013-05-28 - Week 99--102 (guest post)
2013-04-30 - Week 97--98 (guest post)
2013-04-16 - Week 95--96
2013-04-02 - Week 93--94
2013-03-19 - Week 91--92
2013-03-05 - Week 89--90
2013-02-19 - Week 87--88
2013-02-05 - Week 85--86
2013-01-22 - Week 83--84
2013-01-08 - Week 79--82
2012-12-11 - Week 77--78
2012-11-27 - Week 75--76
2012-11-13 - Week 73--74
2012-10-30 - Week 71--72
2012-10-16 - Week 69--70
2012-10-02 - Week 67--68
2012-09-18 - Week 65--66
2012-09-04 - Week 63--64
2012-08-21 - Week 61--62
2012-08-07 - Week 57--60
2012-07-10 - Week 55--56 (includes the second "Big Ticket Items" list)
2012-06-26 - Week 53--54
2012-06-14 - MemShrink's 1st Birthday
2012-06-12 - Week 51--52
2012-05-29 - Week 49--50
2012-05-15 - Week 47--48
2012-05-01 - Week 45--46
2012-04-17 - Week 43--44
2012-04-03 - Week 42
2012-03-27 - Week 41
2012-03-20 - Week 40
2012-03-13 - Week 39
2012-03-06 - Week 38
2012-02-28 - Week 37
2012-02-21 - Week 36
2012-02-14 - Week 35
2012-02-07 - Week 34
2012-01-31 - Week 33
2012-01-24 - Week 32 (includes the first "Big Ticket Items" list)
2012-01-17 - Week 31
2012-01-10 - Week 30
2012-01-03 - Weeks 28--29
2011-12-20 - Week 27
2011-12-13 minutes Week 26
2011-12-06 minutes Week 25
2011-11-29 minutes Week 24
2011-11-22 - Week 23
2011-11-15 - Week 22
2011-11-08 minutes Week 21
2011-11-01 minutes Week 20
2011-10-25 minutes Week 19
2011-10-18 minutes Weeks 13--18
2011-10-11 minutes -
2011-10-04 minutes -
2011-09-27 - -
2011-09-20 minutes -
2011-09-13 - -
2011-09-06 minutes Week 12
2011-08-30 minutes Week 11
2011-08-23 minutes Week 10
2011-08-16 minutes Week 9
2011-08-09 minutes Week 8
2011-08-02 - Week 7
2011-07-26 minutes Week 6
2011-07-19 minutes Week 5
2011-07-12 minutes Week 4
2011-07-05 minutes Week 3
2011-06-28 - Week 2
2011-06-21 - Week 1
2011-06-14 - -


Presentations.