OSDN Git Service

An InlineNative for String.isEmpty, so it's not slower than length() == 0.
authorElliott Hughes <enh@google.com>
Tue, 6 Apr 2010 01:13:52 +0000 (18:13 -0700)
committerElliott Hughes <enh@google.com>
Thu, 8 Apr 2010 22:53:10 +0000 (15:53 -0700)
commitee34f594881ac2d859113db33baf5e141f5a58dd
tree46054403ccc8b27c821563574f7be6cfe70e50b4
parent3517705eed1cd8dc9cb0386db952de661623b2df
An InlineNative for String.isEmpty, so it's not slower than length() == 0.

Before:

       benchmark  ns logarithmic runtime
         IsEmpty  115 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
LengthEqualsZero   21 XXXXX||||||||||||||

With C intrinsic:

          IsEmpty  30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 LengthEqualsZero  20 XXXXXXXXXXXXXXXXXXXX||||||

With assembler intrinsic:

          IsEmpty  15 XXXXXXXXXXXXXXXXXXXX||||||
 LengthEqualsZero  21 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(All times on passion.)

Change-Id: Ifcc37fe7b8efdd377675a448e0085e490d6767bc
libcore/luni/src/test/java/java/lang/StringTest.java
vm/DalvikVersion.h
vm/InlineNative.c
vm/InlineNative.h
vm/compiler/codegen/arm/Assemble.c
vm/compiler/codegen/arm/CodegenDriver.c