3 ms·
Actually that's available for the Python language as well with PyPy.
by 1337shadow 6y ago
Actually that's available for the Python language as well with PyPy.
- pizlonator 6y agoThe post gives PyPy a shout out. But it’s subtle. PyPy is similar but not the same. I think that JSC’s exact technique could be tried for Python and I don’t believe it has.
- 1337shadow 6y agoMaybe, I wish I had the occasion to deploy PyPy in production, but as a daily Python user since 2008: I never had to switch to PyPy to fix any performance problem that mattered for my users or me, but I keep an eye on PyPy and admire it as well as the developers behind it.
- hajile 6y agoPython actually uses prototypal inheritance behind the scenes. Pypy is a tracing JIT though which is quite different. JSC and v8 compile a method at a time. Spidermonkey used to use tracing, but switched to methods too (though I think it still does limited tracing in some situations).
- jashmatthews 6y agoTraceMonkey was removed almost a decade ago https://bugzilla.mozilla.org/show_bug.cgi?id=698201 https://bugzilla.mozilla.org/show_bug.cgi?id=698201
- hajile 6y agoJaegerMonkey used both approaches. I don't know if IonMonkey still does though. https://hacks.mozilla.org/2010/03/improving-javascript-performance-with-jagermonkey/ https://hacks.mozilla.org/2010/03/improving-javascript-perfo... EDIT: It looks like a couple trace-like techniques are still used in IonMonkey (maybe the devs have some input there though). https://wiki.mozilla.org/IonMonkey/Overview#Modus_Operandi https://wiki.mozilla.org/IonMonkey/Overview#Modus_Operandi
- jashmatthews 6y agoThere’s no tracing in either JägerMonkey or IonMonkey. That’s just a confusing statement about the similarity of speculation guards and OSR exits to trace guards and side exits. For a while TraceMonkey was used as a higher tier above JägerMonkey which might be what you’re thinking of? I don’t work for Mozilla but spent a ton of time studying TraceMonkey for building my own tracing JIT.