hg: jdk8/tl/jdk: 6924259: Remove offset and count fields from java.lang.String (original) (raw)
Mike Duigou mike.duigou at oracle.com
Sun Jun 3 21:35:52 UTC 2012
- Previous message: [doc]Small modification on the WeakHashMap doc
- Next message: hg: jdk8/tl/jdk: 6924259: Remove offset and count fields from java.lang.String
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[I trimmed the distribution list]
On Jun 3 2012, at 13:44 , Peter Levart wrote:
On Thursday, May 31, 2012 03:22:35 AM mike.duigou at oracle.com wrote:
Changeset: 2c773daa825d Author: mduigou Date: 2012-05-17 10:06 -0700 URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/2c773daa825d
6924259: Remove offset and count fields from java.lang.String Summary: Removes the use of shared character array buffers by String along with the two fields needed to support the use of shared buffers. Wow, that's quite a change.
Indeed. It was a long time in development. It is a change which is expected to be overall beneficial though and in the general case a positive win.
So .substring() is not O(1) any more?
No. Though with object allocation it probably was only ever roughly O(1) anyway.
Doesn't this have impact on the performance of parsers and such that rely on the performance caracteristics of the .substring() ?
It does have an impact. We've seen as much as a couple of percent on some benchmarks. Parsers which use substring for extraction are definitely impacted by this change.
Have you considered then implementing .subSequence() not in terms of just delegating to .substring() but returning a special CharSequence view over the chars of the sub-sequence?
It does look that String.subSequence() returning a special view rather than a substring would be a good optimization and probably a very good compromise for parser developers. Please create an issue and if you have the time and expertise a patch would speed things along (though unfortunately almost certainly too late for inclusion in 7u6).
Mike
Regards, Peter
Reviewed-by: alanb, mduigou, forax, briangoetz Contributed-by: brian.doherty at oracle.com
! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/StringCoding.java
- Previous message: [doc]Small modification on the WeakHashMap doc
- Next message: hg: jdk8/tl/jdk: 6924259: Remove offset and count fields from java.lang.String
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]