a difference in degree

We recently had to hyper-spin an update (Firefox 2.0.0.11), because of a regression introduced into the <canvas> code in the previous release. Never something you want to do, but, then, it could have been worse.

My heart goes out to the guys at CCP, who are no doubt having the worst week they can remember.

Edit: I would bet a decent sum that this patcher change was some “tiny super-safe patch” that went in between the last time they did end-to-end testing and the time they released it to servers. This is why we have release candidates, and why they are bit-for-bit the same as what we ship when the time comes. If a developer ever tells you “this is 100% safe, don’t need to retest”, they can’t do math, and should be ignored. If I am the developer in question, doubly so.

Edit 2: A great (candid, clear, detailed) post about this boot.ini issue has appeared on the EVE developer blog. Recommended reading!

another random bit of instrumentation

Last week, I was wondering about how the frame freelist/recycling/arena behaviour might impact dynamic memory footprint, especially for long-lived pages that do a lot of DOM-whacking. So in a few hours on Friday and today I whipped up an ugly, ugly patch that tracks the total outstanding “live” frame size for a given PresShell instance, and the total size of those that are being kept on the freelist. I doubt I’ll have much time to do more with it, but it might be an interesting addition to about:memory when that gets rolling. I’d also like to make the frame counting not be debug-only, and surface that information as well, just for kicks.

[ { uri: "resource://gre/res/hiddenWindow.html", allocated: 11768, onFreelist: 212 },
{ uri: "chrome://browser/content/browser.xul", allocated: 172775, onFreelist: 15064 },
{ uri: "http://www.mozilla.org/projects/minefield/", allocated: 88944, onFreelist: 1292 },
{ uri: "http://news.google.com/", allocated: 476528, onFreelist: 2368 },
{ uri: "http://dojotoolkit.org/demos/fisheye-demo", allocated: 102379, onFreelist: 39540 },
{ uri: "http://jquery.com/plugins/project/Plugins/category/48", allocated: 166888, onFreelist: 1320 },
{ uri: "http://jquery.com/plugins/project/LavaLamp", allocated: 91904, onFreelist: 1540 },
{ uri: "chrome://global/content/console.xul", allocated: 47232, onFreelist: 313408 },
{ uri: "about:blank", allocated: 11768, onFreelist: 212 },
{ uri: "about:presshell-stats", allocated: 13620, onFreelist: 212 },
]