Performance/Snappy/2012-02-23

From MozillaWiki
Jump to: navigation, search

Snappy Feb. 16 Mintues

Actions

  • QA should verify tab close regression in bug 724349
  • backporting snappy fixes

Incoming

  • SUMO input on performance trending upwards

http://input.mozilla.com/en-US/?q=slow%7Chang%7Crespond%7Clag%7Cevery%7Cresponsive&product=firefox&version=11.0&date_start=&date_end=&sentiment=sad http://input.mozilla.com/en-US/?product=firefox&sentiment=sad&date_end=&date_start=&version=11.0&q=

    • taras will follow up

Projects

Better DOM event/task scheduling - jst (telemetry)

Bugs/Work:

  • bug 712478: Add interactive states - smaug? - status: new
  • bug 715592: Immersive modes - owner? - status: new
  • bug 715376: background tab activity to be less disruptive 1 - johns - status: new
  • bug 715378: background tab activity to be less disruptive 2 - janv - status: new
  • bug 715380: to measure above problem + track progress 1 - nathan - status: new
  • bug 715950: to measure above problem + track progress 2 - nathan - status: new
  • bug 715953: to measure above problem + track progress 3 - nathan - status: fixed 13
  • bug 717659: for tracking reflows in background tab - nathan - status: fixed 13
  • bug 675015 - Avoiding reflowing when scrolling - timothy - status: fixed 12
  • throttle parsing tasks while loading background tabs(html5 parser work bug#?)
  • timer combination + time accounting on JS are being assigned(eta Thurs 23rd for update)

Results (Feb. 23):

  • timer combination + time accounting on JS are being assigned update?

Todo this week:

  • add khuey's bugs
Interactivity heuristics - taras, mccr8, bbondy (when available)

Bugs/Work:

  • bug 710496: reduce frequency of cycle collector when slow - mccr8 - status: new
  • bug 698547: try to disable cycle collection, gc, while user-interactive - owner? - status: new

Results (Feb. 23):

  • updated patch for 710496. need to see how it works in practice.

Todo this week:

Super-slow-startup investigations - vlad, taras,h

Bugs/Work:

  • bug 701872: cause of multi-minute startups - taras - status: in progress
  • network cache still a problem?
  • bug 715402: a lot of slow startups seem to indicate we load pages before we paint - dietrich - status: backed out, need to re-evaluate Talos tests w/ new startup event sequence caused by this patch
    • Roughly 4% of telemetry reports show sessionRestore occuring before firstPaint
  • Vlad's blog post:http://blog.mozilla.com/vdjeric/2012/01/31/telemetry-from-super-slow-startups-first-impressions/
  • Unknown what % of slow-startup reports were from unofficial builds, getting recent batch of data with extra info in METRICS-429 JIRA
  • Vlad looking into slow sql correlations: reported findings to mak during FOSDEM week - in dependencies of bug 722188 + also covered by dependencies of bug 699820
    • Co-ordinate with froydnj, maybe have SQLite add callback on lock contention

Results (Feb. 23):

Todo this week:

  • Waiting for new batch of data from Metrics (METRICS-429)
Startup optimizations - bbondy

Bugs/Work:

  • bug 725444 - 10-15ms in AudioSession - bbondy - status: in progress (needs review commments implemented)
  • Other opts for nsLocalFileWin, would also like to profile nsLocalFileUnix later - (bug#? Will post once I profile and find specific opts) - status: in progress
  • Profiling manifest parsing - bug#506392 - status: in progress
  • Searching for other startup pain points - status: in progress
  • Bug 692255 - Find a way to get rid of prefetch files on Windows for faster startup - bbond - status: r+ waiting on superreview
  • Bug 727864 - Enable DLL preloading when MozillaMaintenance service disabled prefetch - bbondy - status: r+ waiting to land with bug 692255
  • Bug 726503 - FILE_FLAG_SEQUENTIAL_SCAN always being passed for all file IO - bbondy - status: landed 13
  • Bug 726481 - Reduce calls to IsDirectory by not calling it when enumerating directories - bbondy - status: landed 13
  • bug 726576 - Optimize calls to nsLocalFileWin's HasFileAttribute - bbondy - status: landed 13
  • Wonder if we can make a smaller dll instead of xul.dll with the needed startup functions - (bug#? No bug yet since I'm not sure if it is a good idea yet)

Results (Feb. 23):

  • Not much to update this week for startup opts, have been away on making a test suite and landing security tasks for updater.

Todo this week:

  • Plan on looking into how we load DLLs more and omni.ja, don't expect wins this week here but want a better understanding of it. No Bug ID until I find somehting that is worth doing.
Front-end - Dietrich/bbondy

Bugs/Work:

  • bug 671038: front-end telemetry meta bug: need to see what's left that is high priority
  • bug 699820: Storage IO meta bug
    • Bug 722242 - (placesIdleContention) Avoid thread contention on idle maintenance - paolo - status: landed 13
  • bug 669034: Session Restore meta bug
    • breaking out chunks into separate modules, some patches in review
  • bug 593680: Tab animation meta bug - jeff - status: new
  • bug 711193: Restore-on-demand by default (needs telemetry, see top of page) - paolo - status: r+
  • bug 704025: Rewrite frecency to make it less IO heavy - needs owner - status: new
  • bug 725821: Avoid scanning all the pages table for each awesomebar matching, separate FTS engine to restrict the resultset - needs owner - status: new
  • bug 519514: Async bookmarking API to avoid Sync hanging the UI - needs owner - status: new
  • bug 699860: Async Clearing of recent history - needs owner - status: new
  • bug 566746: Async FormAutocomplete in reviews (needs new patch - status: felix - in progress
  • bug 699856: Move search service to json - yoric - status: needs review gavin
  • bug 699859: Async content preferences - drew - status: needs new patch
  • bug 521264: Don't use file.exists() when not necessary - marcoC - status: failing tests, needs new patch)
  • bug 649216: Clicking quickly at the same location should close multiple tabs - previous owner may be able to come back to this - follow up - status: needs new patch
  • Bug 710373 - Pressing the vertical slider down arrow with smooth scrolling should move three lines instead of one - Jared ** status: landed 12
  • bug 613588: asyncronous on-demand livemarks - marco - status: needs SR gavin
  • bug 727275 - 1s opt main thread for a download from Download Manager - bbondy - status: implementing review comments
  • bug 632556 - Run nsIFile::Reveal/Launch asynchronously - bbondy - status: Waiting on review, was changed to r+ during meeting.

Results (Feb. 23):

  • bbondy: Implemented bsmedberg's recommendations for bug 632556 and put it back for review.
  • bug 613588: async livemarks has all reviews, just needs final SR on new interfaces from gavin
  • session restore telemetry: have data on session restore collection/serialize/write/read/corruption. nothing interesting - same story about variability of the cost of disk IO.
  • bug 723611: Browser hung while trying to vacuum (landed)

Todo this week:

  • session restore telemetry for extreme iframe pages, and session storage size
Fix cache - hurley

Bugs/Work:

https://docs.google.com/spreadsheet/ccc?key=0Amywl0iz5SaydEhwblpOQng1RkpoS09Yakh6NkxoRnc

Results (Feb. 23):

  • hurley: patch for bug 723577 (first set of lock removals/fixes) is in review
  • 729133: preconnect cache

Todo this week:

  • hurley: continue work on bugs being tracked in 717761
Profiler - jrmuizel

Bugs/Work:

  • Have plans to get samples associated with document urls
  • sfink is investigating interleaving C++/JS stack in profiling unwind
  • bug 719530: Cleopatra front-end improvements - owner? - status: new

Results (Feb. 23):

Todo this week:

about:jank - jrmuizel

Bugs/Work:

  • changing the profiler export format to JS

Results (Feb. 23):

  • ON HOLD

Todo this week:

Paint telemetry - jrmuizel

Bugs/Work: ? Results (Feb. 23):

  • ON HOLD

Todo this week:

Nondestructive chromehang - vlad

Bugs/Work:

  • bug 712109: non fatal chromehang - vlad - status: in review]
  • Getting PCs from stack + module addresses & PDB signatures
  • Client-side reporting of chrome hang stacks + module PDB signatures done. Offline symbolication of stacks works. Latest patch with leaner report format currently being reviewed bug#?
  • Benoit has made a symbolication web app, might integrate my symbolication tool with it eventually bug #?

Results (Feb. 23):

  • Vlad taken over getting Beonit's symbolication web app deployed
    • bsmedberg requested a VM with a symbol mount, working on getting benwa's symbolication web service deployed on it
  • poke ehsan about it

Todo this week:

  • Get benwa's web app deployed, figure out what changes need to be made to server + changes to Firefox profiling extension
  • Security review of the web service next week
Snappy Scrolling (meta bug
710372) - Jared

Bugs/Work:

  • (add backend dependencies) - bug#s?
  • Scrolling is worse than opera(acceleration, smoothness, and bounce) - (roc) - bug#?
  • Turn smooth scrolling off for mousewheel or investigate - bug#?
  • Bug 206438: Smoothscroll should be replaced by 'smoothwheel' extension - Avi Halachmi
  • make sure high res mousewheel scrolling is hooked up on all platforms - bug#?
  • track scrolling performance(roc?) - bug#?
  • Make a video to demonstrate the problem - owner?
  • cameron has been fixing touchpad - bug#?
  • keyboard repeat drives scrolling rate - bug 629507

Results (Feb. 23):

  • (2/15 update: A patch to make keyboard arrow keys and scrollbars have consistent scrolling distances is very close to landing. The patch will introduce a pref that can be changed in about:config for scrolling distance. Hooking smooth scrolling up to the refresh driver timer is no longer part of the snappy scrolling work since it will not have a large impact on the responsiveness of scrolling. The last major work for snappy scrolling is bug 206438 which needs an owner. Jared has reached out to the extension author to see how he can help us with porting it to the platform.)

change is on the ux branch Todo this week:

Peptest - mcote

Bugs/Work:

  • bug 729395: Investigating necessary failure thresholds to get a green baseline

Results (Feb. 23):

  • Peptest is on try! You need to add noignore=1 to the URL to see it, though. It is 'U' (to be changed eventually, before being unignored).
  • Results are, predictably, all orange (aside from a few reds that are probably project branches using the old version of peptest). The oranges are caused by real event-loop pauses during actions like resizing the window, opening a new window, opening the bookmarks window, etc.
  • Gathering stats about which tests fail and how badly. Using this, we'll (hopefully) be able to make a green baseline, so we will still catch regressions. I will also file bugs to investigate the delays and hopefully fix or at least improve them (at which point we can lower the failure thresholds).

Todo this week:

  • Gather stats, which vary by platform and from run to run. Modify peptest to allow per-platform failure thresholds.
Font chromehang fixes - John

Bugs/Work:

  • collection of bugs found when turned on chromehang - bug#s?
  • John: updating patches for system font fallback today, 1/27 - bug#?

Results (Feb. 23):

  • John will aim to have fix reviewed by aurora branch day - complete?
  • Given the value of this fix might land it on aurora - status?

Todo this week:

GC pause reduction - billm

Bugs/Work:

  • bug 641025: incremental GC - billm - status: landed 13
  • bug 719492: responsiveness telemetry - billm - status: landed 13

Results (Feb. 23):

  • bug 719492 landed for Firefox 13

Todo this week:

  • fix problems that landing of incremental GC has turned up
CC pause reduction - smaug, mccr8 (meta bug
698919)
  • Avoid adding things to the CC graph, run CC less often, fix leaks

Results (Feb. 23):

  • New leak finding extension prototype has found a number of leaks (bug 726346)
  • Fixed some leaks that hurt CC times (bugs 728577, 726334)
  • Increased timer delay, so CC runs a little less often (bug 728547)
  • Don't add active network requests to CC graph (bug 725804)
  • Working on patch to make CC trigger GC less often (bug 727965)
  • Working on patch to make CC run much less often (bug 728460)

Todo this week:

gfx d2d lag - jeff

Bugs/Work:

  • need better heuristics to turn it off - bug#?
  • need a plan to make us paint as well as IE - bug#?

Results (Feb. 23):

  • ON HOLD

Todo this week:

Firefox shutdown - rafael/bbondy

Bugs/Work:

  • bug 662444: skip gc and other unneeded ops - rafael - status: new
    • affects places, session restore, etc.
  • bbondy: A large portion of shutdown is due to the main thread's nsDiskCacheBlockFile::Close/nsDiskCacheBlockFile::FlushBitMap accounting for 193ms - (bug #? no bug number, just an observation)

Results (Feb. 23):

  • bbondy: Bug 685027 - Closing last Firefox window takes longer to exit the process from Firefox > Exit (Was nothing was just due to notification service), will follup up with another bug but it isn't highest priority - bug #?

Todo this week:

ImageSuck - tnikkel

Bugs/Work:

  • bug 689623: provide info on visible images - - status: in progress

Results (Feb. 23):

Todo this week:

Tab on demand - gavin

Bugs/Work:

  • bug 711193: turn on tabs on demand by default - gavin - status: in progress

Results (Feb. 23):

  • Patch ready to land, Gavin to follow up

Todo this week:

20 second GC on resume - dietrich

Bugs/Work:

  • bug 639262: pinwheeling after resume - mccr8 - status: in progress

Results (Feb. 23):

Todo this week:

Other areas of focus:

  • bug 566746 - form history async storage api
  • bug 699854 - async download storage (paolo?)
  • bug 593680 - tab animation issues (jet?)
  • bug 629507 - keyboard scrolling imrovements(jared?)
  • bug 650968 - personas are slow(bbondy will look into it)
  • bug 725821 - investigate FTS (vlad)
  • bug 722243 - mark queries as cancellable - violence to avoid contention(vlad)
  • bug 710935 - measure lag in handling user input (bbondy)
  • bug 421128 - necko connection- necko connection starvation (patrick, eta?)
  • flash (jst, nathan, measure how long synchronous IPC takes(file bug) , probably instrument npapi entry points too)
  • gfx deceleration jank(jeff)