From: Lothar Scholz Date: 2005-04-08T14:50:32+09:00 Subject: Re: Seven new VMs, all in a row Hello vruz, >> > OTOH, if it is 30x faster and makes an alternate implementation of socket >> >> I'm very skeptical about the 30x faster claim. >> >> Phil v> For what I've seen, reusing something like the Mono native backend v> (available for major processor architectures) can yield even higher v> performance gains. v> A custom tailored VM in assembler can provide 100x and possibly more v> depending on the architecture. No. You simply forget that the Mono/.NET VM's are optimized for static typed languages and they compile a frontend language into a classic 3 register instruction machine, not a stack based machine like JAVA giving much more chance for optimizations. There i don't see a problem for such high performance boosts. But if we can't come up with a type inference machine, the theoretical improvements (and thats what is done by YARV or Parot) are far from that. If you are willing to spend a huge amount of memory you can go the python way and keep multiple compiled versions (based on differently use types) of small code fragments translated. In 1995 i've written an emacs lisp compatible interpreter and it was easy to get 8x more speed then the current one with program flow optimizations (a FORTH like direct threaded interpreter) and together with integration of the Boehm-Weisser GC and more optimizations i think it's easy to get even a 20x improvement (especially on Ruby where the implementation is not very sophisticated). We can use techniques like Eiffel's system wide optimizations to get the cost of a method call down to a "call 0x05346403" in most cases, so with elimination of a VMT we can be even faster then C++. But then we still need cascaded "if (argument = TYPE(Integer)) x += VALUE(argument)". -- Best regards, emailto: scholz at scriptolutions dot com Lothar Scholz http://www.ruby-ide.com CTO Scriptolutions Ruby, PHP, Python IDE 's