While I've often felt many of the pain points in the article and they were never explained anywhere (that I saw anyway).
I'd often profile/benchmark something, make sure it's fast enough to use in our performance critical section of the code, only to find that once in the application I'd only get a fraction of the speed I was expecting.
I would then hop over to using --trace-opt only to find that functions were getting deoptimized or never optimized in the first place and I'd start playing the game of trying things here and there to get it to cooperate. And in some cases --trace-opt wouldn't tell me anything that I could usefully understand yet my code would still be slow.
Here's to hoping that turbofan clears up a lot of these weird cases!
And slightly off topic, but what are the plans for the dart VM? Is it going to end up using TurboFan or will it stay with Crankshaft?
While I've often felt many of the pain points in the article and they were never explained anywhere (that I saw anyway).
I'd often profile/benchmark something, make sure it's fast enough to use in our performance critical section of the code, only to find that once in the application I'd only get a fraction of the speed I was expecting.
I would then hop over to using --trace-opt only to find that functions were getting deoptimized or never optimized in the first place and I'd start playing the game of trying things here and there to get it to cooperate. And in some cases --trace-opt wouldn't tell me anything that I could usefully understand yet my code would still be slow.
Here's to hoping that turbofan clears up a lot of these weird cases!
And slightly off topic, but what are the plans for the dart VM? Is it going to end up using TurboFan or will it stay with Crankshaft?