DescriptionMac: Proof-of-concept task manager
Superseded by http://codereview.chromium.org/549002.
I landed the IPC parts of this temporarily in r34146 to look at the perf impact. Results are inconclusive; maybe it makes startup a tiny bit slower, but it's within noise level.
Once this is nice and tidy, I will break this up into smaller CLs, send those out for review and submit this in pieces (by now, this happened for several of the pieces).
Outstanding issues:
* IPC part should be part of the channel infrastructure
* Doesn't work for worker and utility processes yet
* Polish stuff: Maybe sample every 2s to better match Activity Monitor, maybe call this "Activity Monitor" instead of "Task Manager" on OS X, add icons to UI, and other small UI stuff.
Done:
* Support more child process types (currently, this only works for renderers. Missing are plugins, extensions, maybe helper/utility processes, webworkers)
* This currently leaks ports (but not in a harmful way as far as I can tell, and maybe that's not even caused by this patch)
BUG=13156
TEST=
1.) Open one tab that plays a youtube video
2.) Open a second and visit http://www.whatwg.org/demos/workers/primes/page.html
3.) Install e.g. the gmail checker extension
4.) Open the task manager
It should report metrics for
* one browser process
* two renderer processes
* one plugin process
* one worker process
* one extension process
Check that %cpu etc more or less match what Activity Monitor displays if you filter for "Chromium".
TODO: check same for utility processes, nacl, profile importer
Process types:
* Renderer
* Extension
* Utility
* NaCL
* Plugin
* Profile importer
* Shared worker
* (Zygote)
Patch Set 1 #Patch Set 2 : add another ipc strawman #Patch Set 3 : bloody mess #Patch Set 4 : Basically works #
Total comments: 1
Patch Set 5 : Work in progress. Memory seems close, cpu is somewhat off #Patch Set 6 : cleanups #Patch Set 7 : rebase #Patch Set 8 : foo #Patch Set 9 : rebase #Patch Set 10 : argh #Patch Set 11 : revert task_manager.h #Patch Set 12 : compile #Patch Set 13 : rebase #Patch Set 14 : rebase #Patch Set 15 : notify #Patch Set 16 : hack to make this work even with extensions installed #Patch Set 17 : foo #Patch Set 18 : metrics for all subprocesses seem to work (plugins, extensions, etc) #Patch Set 19 : unpatch 522013 #Patch Set 20 : dealloc ports #Patch Set 21 : rebase #Patch Set 22 : rebase #
Total comments: 41
Messages
Total messages: 8 (0 generated)
|