I've found everything that Egorov (author of this post) has written is well worth reading.
If there's one overall theme of his work, it's that it is generally highly unreliable to extrapolate the result of micro-benchmarks to real code. Instead, you need to measure potential optimizations in your actual code base. And you might need to do it again next year, because compilers are constantly changing and usually improving.
If there's a second overall theme, it's that you can and should examine the code that your JS compiler is producing, rather than relying completely on black box benchmarks. It would be great if browser dev tools would make this easier to do directly. Currently, I find the external tools for doing this hard enough to set up and manage that it isn't really very economical to do this kind of analysis frequently.
Compare to Julia, where you can call code_llvm(fn, (argtypes...)) to see the LLVM IR of a piece of code right from the REPL, or code_native(fn, (argtypes...)) to see the generated machine code for your architecture.
[1] http://books.google.com/books?id=ED6ph4WEIoQC&lpg=PA64&vq=th...
> Currently, I find the external tools for doing this hard enough to set up
I have tried making this kind of information easier to grok for JavaScript developers by creating IRHydra[1]. Please reach out and describe your issues - one of the reasons why something like IRHydra is not part of Dev Tools yet is that Dev Tools people are not registering big demand for indepth analysis tools.
But imagine a workflow where I'm profiling my real application in the browser, and I see that some function comes up hot. If I could just click its name and get this kind of information, I believe I would do this kind of analysis much more often.
That said, as a person who makes websites, I'm sensitive to the fact that people who claim they would use a feature if you built it won't actually always use the feature when you build it...
> upload files to a web page.
Minor clarification: nothing ever leaves your local computer. There is no server component in IRHydra. It's purely your browser that interprets these files.
Wow, cool!