Bryce, I'll play dumb here - actually, I'm not playing in this case :) The little I know about Exupery comes from FAQs. In the past at least, you cautioned against enabling dynamic compiling of methods, at least in production. How does that square with full-inlining? Are they different concepts, or have thing improved enough that you are now confident enough to throw the switch? Full-inlining sounds like it could consume a lot of space. Is that a concern, or does the selection of what it compiles keep it manageable? How does it decide what to compile, and (more relevant to my dumb questions) how does that differ from the dynamic compilation?
Please don't feel attacked - I'm simply trying to understand what is hopefully just around the corner. Bill -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of [email protected] Sent: Saturday, March 07, 2009 6:55 AM To: [email protected] Subject: {Spam?} Re: [Pharo-project] Pharo + Exupery VM + Something else than Accuny Hilaire Fernandes writes: > I am talking about performance, benchmark, etc. > Is it not Exupery about improving the speed of the VM? Exupery is, these VMs include the support Exupery needs but the compiler is in the image. If you load and start Exupery you may see some gains. I haven't yet tuned the background compiler for practical use, it currently will compile every method it sees which is great for debugging but not good for providing a practical speed improvement. Compiled code takes up more cache than bytecode so there can be a loss due to compiling methods that are hardly ever used. Here's the current benchmarks: arithmaticLoopBenchmark 390 compiled 80 ratio: 4.875 bytecodeBenchmark 724 compiled 250 ratio: 2.895 sendBenchmark 663 compiled 385 ratio: 1.722 doLoopsBenchmark 381 compiled 235 ratio: 1.621 pointCreation 394 compiled 389 ratio: 1.013 largeExplorers 269 compiled 210 ratio: 1.280 compilerBenchmark 273 compiled 250 ratio: 1.092 Cumulative Time 413.408 compiled 232.706 ratio 1.777 With these VMs you could load Exupery from either SqueakMap or Universes and start it. Documentation is here: http://wiki.squeak.org/squeak/Exupery I may add full method inlining next rather than tune for practical performance. Full method inlining will speed up common sends extensively. In summary, there may be a practical performance gain now or there may not but Exupery is getting close to being seriously useful. Bryce _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
