{"push_id":603917007,"size":8,"distinct_size":3,"ref":"refs/heads/measure-display-list","head":"fa9ca206efefea850ef1d8c8b43513653ff07507","before":"aeafb55c2d0b8e29e8445cf787e52faa6e96d10a","commits":[{"sha":"7ca3c8d6e3baddeb8a1602d92ce0c8bc55f13026","author":{"email":"fc471ce1ec61f8c7b76f85bd7169cc53c56b215c@intuitionlibrary.com","name":"Glenn Watson"},"message":"Restore part of PR #5125 that was accidentally removed in PR #5160.","distinct":false,"url":"https://api.github.com/repos/nnethercote/servo/commits/7ca3c8d6e3baddeb8a1602d92ce0c8bc55f13026"},{"sha":"591b10aa58a8232912eaedb058e3e58aa0338244","author":{"email":"fc471ce1ec61f8c7b76f85bd7169cc53c56b215c@intuitionlibrary.com","name":"Glenn Watson"},"message":"Fix for race condition causing reftests to hang under load.\n\nIf the root layer has a zero size rectangle, it will never be\npainted, so assume the pipeline is idle in that case.\n\nRe-enable two reftests that were disabled due to this issue.","distinct":false,"url":"https://api.github.com/repos/nnethercote/servo/commits/591b10aa58a8232912eaedb058e3e58aa0338244"},{"sha":"0888a3a16d4f5eafe4f8008ec060764645f3bee5","author":{"email":"b18960881355ab4dde8a50c549f7b9ff81f11cc3@gmail.com","name":"bors-servo"},"message":"auto merge of #5226 : glennw/servo/fix-compositor-layers, r=larsbergstrom","distinct":false,"url":"https://api.github.com/repos/nnethercote/servo/commits/0888a3a16d4f5eafe4f8008ec060764645f3bee5"},{"sha":"939a89568e9506c2c6ffbd1f49e3acda6acdf370","author":{"email":"fc471ce1ec61f8c7b76f85bd7169cc53c56b215c@intuitionlibrary.com","name":"Glenn Watson"},"message":"First part of refactoring constellation to support iframe navigation.\n\nThe history is now recorded per frame, but needs to be exposed in a followup PR.\n\nAlso fixes a race condition that occurs loading iframes under heavy CPU load.\n\nThis ensures that iframes never do a reflow / layout until they have a valid\nwindow size set from their parent frame.","distinct":false,"url":"https://api.github.com/repos/nnethercote/servo/commits/939a89568e9506c2c6ffbd1f49e3acda6acdf370"},{"sha":"1092ca10192c79b4b96c25985a2c6245d369090b","author":{"email":"b18960881355ab4dde8a50c549f7b9ff81f11cc3@gmail.com","name":"bors-servo"},"message":"auto merge of #5205 : glennw/servo/iframe-nav, r=jdm\n\nThe history is now recorded per frame, but needs to be exposed in a followup PR.","distinct":false,"url":"https://api.github.com/repos/nnethercote/servo/commits/1092ca10192c79b4b96c25985a2c6245d369090b"},{"sha":"5865d5f71776336d8f55dcb326d1fb24279bbf63","author":{"email":"ab5cc54e596b116de7a8f9daadb57d1970be9a4d@mozilla.com","name":"Nicholas Nethercote"},"message":"Rename LayoutTask::handle_script_request.\n\nBecause it handles requests from tasks other than the Script Task.","distinct":true,"url":"https://api.github.com/repos/nnethercote/servo/commits/5865d5f71776336d8f55dcb326d1fb24279bbf63"},{"sha":"ece2711185cffa8ade21b0ab9538bc1be79cadb9","author":{"email":"ab5cc54e596b116de7a8f9daadb57d1970be9a4d@mozilla.com","name":"Nicholas Nethercote"},"message":"Add memory reporting infrastructure and use it to measure the display list.\n\nThis changeset implements the beginnings of fine-grained measurement of\nServo's data structures.\n\n- It adds a new `SizeOf` trait, which is used to measure the memory used\n  by heap data structures, and implements it for some std types: Box,\n  String, Option, Arc, Vec, and DList.\n\n- It adds a new `MemoryReporter` trait which is used to report memory\n  measurements from other threads to the memory profiler. Reporters are\n  registered and unregistered with the memory profiler, and the memory\n  profiler makes measurement requests of reporters when necessary.\n\n- It plumbs a MemoryProfilerChan through to the layout task so it can\n  register a memory reporter.\n\n- It implements the `SizeOf` trait for `DisplayList` and associated\n  types, and adds a memory reporter that uses it.\n\nThe display list hits 14.77 MiB when viewing\ntests/html/perf-rainbow.html, and 2.51 MiB when viewing the Guardians of\nthe Galaxy Wikipedia page from servo-static-suite. Example output:\n\n  0.29: display-list::http://www.reddit.com/\n  0.00: display-list::http://static.adzerk.net/reddit/ads.html?sr=-reddit.com,loggedout&bust2#http://www.reddit.com\n  0.00: display-list::http://www.reddit.com/static/createadframe.html\n\nThere are a number of FIXME comments indicating sub-optimal things. This\nis a big enough change for now that doing them as follow-ups seems best.","distinct":true,"url":"https://api.github.com/repos/nnethercote/servo/commits/ece2711185cffa8ade21b0ab9538bc1be79cadb9"},{"sha":"fa9ca206efefea850ef1d8c8b43513653ff07507","author":{"email":"ab5cc54e596b116de7a8f9daadb57d1970be9a4d@mozilla.com","name":"Nicholas Nethercote"},"message":"Remove the fake memory profiler thread.\n\nCurrently if you don't specify the '-m' option, a fake do-nothing memory\nprofiler thread gets created instead of the real one. It ignores all\nevents except for `Exit`. And the timer thread doesn't get created so no\n`Print` events are sent.\n\nThis changeset instead always creates the real thread. If you specify\n'-m' the *timer* thread is still absent and it won't print anything.\nHowever, the memory profiler thread will respond to register/unregister\nevents, which is good, because if there's a bug in those (e.g.\ndouble-registration of a particular name) it'll show up in invocations\nthat lack '-m'.","distinct":true,"url":"https://api.github.com/repos/nnethercote/servo/commits/fa9ca206efefea850ef1d8c8b43513653ff07507"}]}