Charles Oliver Nutter wrote:
Attached is an updated patch for the return-value conversion/coercion
optimization. It improves things significantly:
## before
Measure System.currentTimeMillis, int becoming Fixnum
6.092000 0.000000 6.092000 ( 6.091000)
5.929000 0.000000 5.929000 ( 5.929000)
5.878000 0.000000 5.878000 ( 5.878000)
6.282000 0.000000 6.282000 ( 6.282000)
5.912000 0.000000 5.912000 ( 5.911000)
Measure string.length, integer length to fixnum
0.606000 0.000000 0.606000 ( 0.606000)
0.486000 0.000000 0.486000 ( 0.486000)
0.494000 0.000000 0.494000 ( 0.494000)
0.495000 0.000000 0.495000 ( 0.495000)
0.498000 0.000000 0.498000 ( 0.498000)
## after
Measure System.currentTimeMillis, int becoming Fixnum
1.071000 0.000000 1.071000 ( 1.071000)
0.943000 0.000000 0.943000 ( 0.943000)
0.942000 0.000000 0.942000 ( 0.942000)
0.949000 0.000000 0.949000 ( 0.949000)
0.940000 0.000000 0.940000 ( 0.941000)
Measure string.length, integer length to fixnum
0.544000 0.000000 0.544000 ( 0.545000)
0.462000 0.000000 0.462000 ( 0.463000)
0.464000 0.000000 0.464000 ( 0.464000)
0.469000 0.000000 0.469000 ( 0.469000)
0.463000 0.000000 0.463000 ( 0.463000)
And it passes all tests...provided I disable testLowerJavaSupport.
"Lower" Java support was originally used to implement the
publicly-consumable "higher" Java support, and was also the source of
many of Java integration's performance problems. With the migration
away from Ruby-based "lower" support toward Java-based implementations
of the same features, performance has improved. And it may be the case
that "lower" java support features can simply go away.
+1
--
Ola Bini (http://ola-bini.blogspot.com)
JRuby Core Developer
Developer, ThoughtWorks Studios (http://studios.thoughtworks.com)
"Yields falsehood when quined" yields falsehood when quined.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email