The Arbitrary Logo
blog.arbitrary.io
blog.arbitrary.io
To find out, I took a process sample with OS X Activity Monitor. The main thread is spending most of its time in a requestAnimationFrame() callback, and about 77% of the work done there is inside toDataURL() calls.
Here's the relevant bits of the sample:
+ ! : | + 773 WebCore::DisplayRefreshMonitor::displayDidRefresh() (in WebCore) + 347 [0x10e41ac6b]
+ ! : | + ! 772 WebCore::ScriptedAnimationController::serviceScriptedAnimations(double) (in WebCore) + 407 [0x10e4309c7]
+ ! : | + ! : 771 WebCore::JSRequestAnimationFrameCallback::handleEvent(double) (in WebCore) + 240 [0x10e430dd0]
+ ! : | + ! : | 770 WebCore::JSCallbackData::invokeCallback(JSC::JSValue, JSC::MarkedArgumentBuffer&, bool*) (in WebCore) + 598 [0x10e431146]
+ ! : | + ! : | + 770 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, JSC::JSValue*) (in JavaScriptCore) + 63 [0x10dcefbaf]
+ ! : | + ! : | + 770 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) (in JavaScriptCore) + 462 [0x10db1a0ce]
+ ! : | + ! : | + 770 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) (in JavaScriptCore) + 35 [0x10de565f3]
+ ! : | + ! : | + 770 callToJavaScript (in JavaScriptCore) + 311 [0x10ded24a1]
+ ! : | + ! : | + 601 ??? (in <unknown binary>) [0x4ab59b07e64d]
+ ! : | + ! : | + ! 597 ??? (in <unknown binary>) [0x4ab59b170afb]
+ ! : | + ! : | + ! : 597 ??? (in <unknown binary>) [0x4ab59b001034]
+ ! : | + ! : | + ! : 597 WebCore::JSHTMLCanvasElement::toDataURL(JSC::ExecState*) (in WebCore) + 180 [0x10e45a854]
An easy fix would be to throttle the favicon update down to a lower frame rate -- it doesn't need to be updated on every requestAnimationFrame() call.Also, CPU usage is also high with firefox, and according to the profile, over half of it is spent in GC.
It's a shame that gif favicons never made it back in the day. :(
Unrelated, but some time ago somebody redesigned medium.com to be so bloated I can't scroll half a line without terrible artifacts drawing themselves all over the text, on a website supposedly designed around the reading experience.
context.closePath();
context.fill();
context.globalCompositeOperation = "source-atop";
In action: http://codepen.io/anon/pen/mJOOxv[1] http://www.w3.org/TR/2015/WD-2dcontext-20150514/#dom-context... [2] https://developer.mozilla.org/samples/canvas-tutorial/6_1_ca...
Unicode uses the spelling "lamda" in character names, instead of "lambda", but I could not find the reason for that.
And what is the difference between lamda and lambda for pronunciation? I'd say them the same.
The same goes for lambda. I use that in math & programming, but the letter Λ is actually called [lamða] in modern Greek ('ð' is the sound of 'th' in 'the'). That's apparently how 'lamda' is supposed to sound.