gcj's IO performance vs blackdown JDK

Andrew Haley aph@redhat.com
Thu Jan 15 12:50:00 GMT 2004


Mohan Embar writes:
 > 12/26/2003 11:59:37 AM, Mohan Embar <gnustuff@thisiscool.com> wrote:
 > 
 > >+jint java::io::BufferedReader::lineEnd (jint limit)
 > >+{
 > >+ jchar *pbuf = elements (buffer) + pos;
 > >+ int i = pos;
 > >+ for (; i < limit; i++)
 > >+ {
 > >+ jchar ch = *pbuf++;
 > >+ if (ch == '\n' || ch == '\r')
 > >+ break;
 > >+ }
 > >+ return i;
 > >+}
 > 
 > By changing the above native code to this:
 > 
 > jint java::io::BufferedReader::lineEnd (jint limit)
 > {
 > jchar *pbuf = elements (buffer);
 > int i = pos;
 > for (; i < limit; i++)
 > {
 > jchar ch = pbuf[i];
 > if (ch == '\n' || ch == '\r')
 > break;
 > }
 > return i;
 > }
 > 
 > ...I get a savings of almost another 1s:
 > 
 > running gcj version
 > 100000
 > 
 > real 0m16.321s
 > user 0m14.518s
 > sys 0m1.334s
 > running jdk version
 > 100000
 > 
 > real 0m17.039s
 > user 0m15.572s
 > sys 0m1.098s
 > 
 > If anyone cares to enlighten me about what compiler optimization phenomena
 > explains this, I'd be interested.
Maybe register allocation. Post the assembly output.
Andrew.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /