Microsoft's JavaScript Engine Gets Two-Tiered Compilation
jones_supa writes: The Internet Explorer team at Microsoft recently detailed changes to the JavaScript engine coming in Windows 10. A significant change is the addition of a new tier in the Just-in-Time (JIT) compiler. In Windows 10, the Chakra JS engine now includes a second JIT compiler that bridges the gap between slow, interpreted code and fast, optimized code. It uses this middle-tier compiler, called Simple JIT, as a "good enough" layer that can move execution away from the interpreter quicker than the Full JIT can. Microsoft claims that the changes will allow certain workloads to "run up to 30% faster". The move to a two-tiered JIT compiler structure mirrors what other browsers have done. SpiderMonkey, the JavaScript engine in Firefox, has an interpreter and two compilers: Baseline and IonMonkey. In Google Chrome, the V8 JavaScript engine is also a two-tiered system. It does not use an interpreter, but compiles on a discrete background thread.
Internet Explorer is still playing catch up with other browsers.
Well, there's spam egg sausage and spam, that's not got much spam in it.
What's Internet Explorer? Never heard of it.
But as usual, the latest version of Internet Explorer won't be available for older versions of Windows, meaning we'll have to keep supporting Internet Explorer 7+ for another decade or so.
Get free satoshi (Bitcoin) and Dogecoins
For node.js and/or .NET apps on Windows?
It'd seem like a waste of effort if the shiny JS engine can only be used within IE. IE is dying anyway and they could save tons of money by embedding WebKit instead.
I just misread the title as "Microsoft's JavaScript Engine Gets Two-Tired Compilation.
Sigs are so 1990s. No way would I be seen dead with one.
I can see this going the same way as number of shaving blades on a razor with 5 tiered JIT js.
Great minds think alike; fools seldom differ.
It doesn't seem fair to laugh at them for being late to adopt this particular technique.
What really matters is the overall performance, compatibility, etc.
Two-tiered compilation has pros and cons, it's not a silver bullet.
Safari offers *four* tiers with their FTL (Fourth Tier LLVM). Lots of detail here: https://www.webkit.org/blog/33....
... I'm not really sure why so much effort is being put into fine tune browser performance when most browsers simply get used to display pretty static web pages. The number of people who actually play heavy duty games or anything that requires realtime performance in a browser is probably miniscule and any real gamer will be using .exe's.
Perhaps if browsers were kept simple rather than this constant effort to try and make them replace the desktop as a one-app-runs-all enviroment there wouldn't be so many exploits and they wouldn't be bloated bug ridden monstrosities.
Looks like the year 2015 will mark the revenge of the web.
With an all-round browser support of asm.js, the road is paved for all kinds of heavy duty apps running in your favorite browser.
Hopefully MS is not just considering asm.js for Chakra https://status.modern.ie/asmjs
You are correct about desktop Windows, but Windows Server 2003 and Windows Embedded POSReady are still in extended support. There are already registry hacks to make Windows Update think Windows XP SP3 is POSReady.
>I'm not really sure why so much effort is being put into fine tune browser performance when most browsers simply get used to display pretty static web pages.
Are you saying that most browsers, most meaning more than half of them, do NOT encounter dynamic pages? I don't believe that for a second.
Anyway the browser definitely is becoming more and more an app environment. You can't stop the train.
webGL can be assumed
Not necessarily. A lot of integrated graphics processors in (especially older) office PCs don't support a high enough OpenGL version for WebGL to work. For example, when I visited http://get.webgl.org/ using Firefox 32 on my laptop, it said that though the browser supports WebGL, it is currently disabled. Then I checked about:support and it said it was disabled due to unresolved driver issues. (Not exact wording because that computer isn't in front of me right now. I can retrieve the exact wording on request.) A bit more research turned up the Atom N450's HD Graphics 3100 IGP supporting only OpenGL 1.4, which was before the big reorganization of the OpenGL API to deprecate the fixed-function pipeline.
Browsers are the most secure and privacy preserving way today to execute programs on your computer. They maintain a clear separation between the data on your HDD and theirs, if they need access to your camera they ask you, and it has become really hard to develop an exploit to break out of this sandbox. Because of xkcd 1200, I usually avoid using closed source apps on my desktop, but inside a browser I know it doesn't steal my data, or break something else in my system. Do you remember all those "splash screens" that appeared when you have logged in, advertising some bloaty software? In the browser there are no splash screens. I know, app stores also ensure standards and such, but browsers are still better, as they ensure basic features (copy text, ctrl f etc) I need in everyday computer use.
Except the fact that browser programs are always-online of course.
"For node.js and/or .NET apps on Windows?"
IE/Chakra are already used for modern WinRT-based apps so the partial answer to your question is "yes".
Except the fact that browser programs are always-online of course.
They were until HTML5 introduced "application cache", "local storage", and "IndexedDB" features. This has allowed for offline-first design.
yeah I don't know what you are talking about. As I would say 99.9% of the internet ISN'T static web pages. I just did view source on this page, and 1/3 of the content is JS.