An overview of V8
blog.appsignal.com
blog.appsignal.com
https://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-...
Not every test, but enough that at least on micro benchmarks v8 seems to be the at the bottom at the moment which is disappointing.
It's possible on more common use cases they are closer on perf.
Maybe it's because I'm not a native speaker, but to me this sounds like they're saying the V8 creates one thread per execution context. I've been working with V8 for months now and this doesn't make any sense to me.
Can someone clarify whether I simply misunderstood the phrasing?
>However, V8 uses an environment of a single thread for all of Javascript's execution contexts.
JS has become a general scripting language thanks to Node and friends. So you have it with an interpreter that has had so much effort from veterans in JIT VMs versus Python. The writing is on the wall.
EDIT: added one more quote.
which is a shame, since there's a ton of interesting parts inside of v8.
I think there could be more refinement to the article. The GC does not get rid of "dead or old" objects. It gets rid of dead (unused) objects, regardless of age. The part on inline caching doesn't really explain what happens when the cached method is not the right one. These things could be edited without changing the level of detail very much.
Wait until you see Rust ;)
> That means that new properties can be added, replaced and removed during execution time. This is not possible with languages like Java, for example, in which everything (classes, method, objects and variables) must be defined before program execution and can’t be dynamically changed after the app starts.
Nit: they can; this is just not normally done
> At the time of writing this article, the GitHub repo counts 15.3k stars and 2.9k forks.
Note that V8 is developed mostly outside of GitHub.
Rust is still just a really nice macro assembler.
Or Common Lisp. Or OCaml. Or Haskell. Or Dylan. Or...
But GC technology has come a very long way, and GC's optimized for Lisp's particular pattern of heap touching have become exceptionally good. Such technology is now standard equipment in EVERY language EXCEPT C and C++, and even C and C++ have them as bolt-on accessories. For some kinds of tasks, Lisp can actually be faster than C or C++. This is why, for example, the Orbitz search engine was written in Common Lisp.