History log of /libcore/ojluni/src/main/java/java/lang/AbstractStringBuilder.java
Revision Date Author Comments
616453db2d8d018cf177e207cf8773ffcb808069 10-May-2016 Joachim Sauer <jsauer@google.com> Fix AbstractStringBuilder gaining extra APIs.

AbstractStringBuilder showed up in the API as gaining methods originally
belonging to StringBuffer/StringBuilder (mostly append(*) and
insert(*)).

Ideally it should not be in the API at all, but it's traditionally been
there and we'll keep it for now.

@hide the affected methods and move the "implements Appendable"
definition to StringBuffer/StringBuilder (as methods implementing an
interface can't be @hidden).

Bug: 27582395
Change-Id: I05e44335f65204c6956a8caadf828ea07776d6d5
cda0d81b64c3cfd70557dd3ab87826e68ee9399b 26-Apr-2016 Yi Kong <yikong@google.com> Avoid performing boundary checks in StringBuilder

We can improve performance by avoid performing boundary checks when the
indices are guaranteed to be within bound.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=180.52, 1st qu.=182.58, median=184.18, mean=187.62, 3rd qu.=194.04, max=199.31
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1035.10, 1st qu.=1035.82, median=1041.44, mean=1073.24, 3rd qu.=1106.49, max=1200.55
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=7020.29, 1st qu.=7053.57, median=7092.80, mean=7193.27, 3rd qu.=7358.86, max=7496.96

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=1}}
Results:
runtime(ns): min=169.88, 1st qu.=171.93, median=173.00, mean=177.27, 3rd qu.=185.40, max=191.09
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=10}}
Results:
runtime(ns): min=954.54, 1st qu.=964.95, median=975.47, mean=974.05, 3rd qu.=977.26, max=1001.69
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendString, vm=default, parameters={length=100}}
Results:
runtime(ns): min=5419.06, 1st qu.=5494.05, median=5563.10, mean=5672.46, 3rd qu.=5746.85, max=6347.50

Bug: 28327317
Change-Id: Ibba98a10932f07144dcd8778594eb1bc3bae2373
(cherry picked from commit 308a03fdd632d696dc92044d287b5a66e9030013)
4a225c9faf7984db9af0e302416a999eaba57d3b 25-Apr-2016 Yi Kong <yikong@google.com> Optimize StringBuilder.append for String with range

by using String.charsAt to avoid performing 1-by-1 copying.

Also adds a benchmark testing append for substring.

Before:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=231.16, 1st qu.=233.24, median=244.20, mean=241.41, 3rd qu.=247.49, max=252.71
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=1639.48, 1st qu.=1646.44, median=1658.96, mean=1669.49, 3rd qu.=1694.87, max=1726.36
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=14867.68, 1st qu.=14914.04, median=14965.08, mean=15050.44, 3rd qu.=15189.02, max=15423.22

After:
Trial Report (1 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=1}}
Results:
runtime(ns): min=139.58, 1st qu.=141.36, median=143.44, mean=146.17, 3rd qu.=148.57, max=164.15
Trial Report (2 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=10}}
Results:
runtime(ns): min=503.95, 1st qu.=507.65, median=520.78, mean=541.48, 3rd qu.=580.13, max=596.60
Trial Report (3 of 3):
Experiment {instrument=runtime, benchmarkMethod=timeAppendSubCharSequence, vm=default, parameters={length=100}}
Results:
runtime(ns): min=4797.27, 1st qu.=4832.23, median=4861.71, mean=4936.96, 3rd qu.=5049.35, max=5140.17

Bug: 28327317
Change-Id: I81a4b83cf4b3d854dbb635cd49669ba0bec96009
(cherry picked from commit a8d952d4388d5173dedc3a80381328fd9d7c5f07)
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c 21-Dec-2015 Narayan Kamath <narayan@google.com> Update file headers.

Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
9524178a7300a939242b78017f3dfa8014d4ca6d 27-Oct-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Optimize StringBuffer/Builder#appendFloat/Double/Boolean

Moved FloatingDecimal from sun.misc to java.lang package,
so it can access AbstractStringBuilder class (and do
not duplicate same code for the StringBuffer and the
StringBuilder).

FloatingDecimal is no longer instantiated, but
accessed from thread local storage and reused.

Change-Id: Id1c45cfe6f6a8b30b8550fc04ed1976772f28905
b90c36f25b990336a456daad69ea9db9256b86ce 28-Sep-2015 Przemyslaw Szczepaniak <pszczepaniak@google.com> Track changes to the runtime representation of j.l.String.

Change-Id: I3aecd952128097258743a88f4f664024c9183ea0
51b1b6997fd3f980076b8081f7f1165ccc2a4008 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Initial import of OpenJdk files.

Create new libcore/ojluni directory with src/main/java and
src/main/native subdirectiories.

Build ojluni into core-oj jar.

Use openjdk classes from java.awt.font package.

Copy all files from jdk/src/share/classes and jdk/src/solaris/classes
directories in openjdk into libcore/ojluni/src/main/java.

Copy following native files from openjdk to
libcore/ojluni/src/main/native:
jdk/src/solaris/native/java/io/canonicalize_md.c
build/linux-amd64/include/classfile_constants.h
jdk/src/share/native/java/net/DatagramPacket.c
jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
jdk/src/share/native/java/lang/Double.c
jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h
jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
jdk/src/solaris/native/java/io/FileDescriptor_md.c
jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c
jdk/src/share/native/java/io/FileInputStream.c
jdk/src/solaris/native/sun/nio/ch/FileKey.c
jdk/src/solaris/native/java/io/FileOutputStream_md.c
jdk/src/solaris/native/java/io/FileSystem_md.c
jdk/src/share/native/java/lang/Float.c
jdk/src/share/native/java/net/Inet4Address.c
jdk/src/solaris/native/java/net/Inet4AddressImpl.c
jdk/src/share/native/java/net/Inet6Address.c
jdk/src/solaris/native/java/net/Inet6AddressImpl.c
jdk/src/share/native/java/net/InetAddress.c
jdk/src/solaris/native/java/net/InetAddressImplFactory.c
jdk/src/share/native/java/io/io_util.c
jdk/src/solaris/native/sun/nio/ch/IOUtil.c
jdk/src/share/native/java/io/io_util.h
jdk/src/solaris/native/java/io/io_util_md.c
jdk/src/solaris/native/java/io/io_util_md.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h
jdk/src/share/native/java/lang/java_props.h
jdk/src/solaris/native/java/lang/java_props_md.c
jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c
jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h
jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h
jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h
jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c
build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h
jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
jdk/src/share/native/common/jlong.h
jdk/src/solaris/native/common/jlong_md.h
jdk/src/share/native/common/jni_util.c
jdk/src/share/native/common/jni_util.h
jdk/src/solaris/native/common/jni_util_md.c
jdk/src/share/javavm/export/jvm.h
jdk/src/solaris/javavm/export/jvm_md.h
jdk/src/solaris/native/java/net/linux_close.c
jdk/src/share/native/sun/misc/NativeSignalHandler.c
jdk/src/solaris/native/sun/nio/ch/NativeThread.c
jdk/src/share/native/java/net/net_util.c
jdk/src/share/native/java/net/net_util.h
jdk/src/solaris/native/java/net/net_util_md.c
jdk/src/solaris/native/java/net/net_util_md.h
jdk/src/solaris/native/java/net/NetworkInterface.c
jdk/src/share/native/sun/nio/ch/nio.h
jdk/src/solaris/native/sun/nio/ch/nio_util.h
jdk/src/share/native/java/io/ObjectStreamClass.c
jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
jdk/src/solaris/native/java/net/PlainSocketImpl.c
jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
jdk/src/share/native/java/lang/Runtime.c
jdk/src/share/native/java/lang/Shutdown.c
jdk/src/share/native/sun/misc/Signal.c
jdk/src/solaris/native/java/net/SocketInputStream.c
jdk/src/solaris/native/java/net/SocketOutputStream.c
jdk/src/share/native/java/lang/StrictMath.c
jdk/src/share/native/java/lang/String.c
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h
build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h
build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h
build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h
jdk/src/share/native/java/lang/System.c
jdk/src/share/native/java/lang/Thread.c
jdk/src/share/native/java/lang/Throwable.c
jdk/src/solaris/native/java/io/UnixFileSystem_md.c
jdk/src/solaris/native/java/lang/UNIXProcess_md.c
jdk/src/share/native/java/util/zip/zip_util.c
jdk/src/share/native/java/util/zip/zip_util.h

Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d