Am 16.03.2010 23:35, schrieb Xueming Shen:
Martin Buchholz wrote:

The primary theory here is that branches are expensive,
and we are reducing them by one.


There are still two branches in new impl, if you count the "ifeq" and "if_icmpge"(?)

We are trying to "optimize" this piece of code with the assumption that the new impl MIGHT help certain vm (hotspot?) to optimize certain use scenario (some consecutive usages), if the compiler and/or the vm are both smart enough at certain
point, with no supporting benchmark data?

I've finished the benchmark:
https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/JDK-7/j_l_Character_charCount/src/java/lang/CharacterBenchmark.java?rev=1006&view=log

The results:
time1: 2316,213 ms  ..à la Martin
time2: 1267,063 ms
time3: 1245,972 ms  ..using isValidCodePoint
time4: 1467,570 ms ..validate version (slower, because of unreasonable HotSpot optimizing, see "C2 optimization bug ?" in hotspot-compiler-dev list)

Here see the disassembly snippets:
https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/JDK-7/j_l_Character_charCount/log/PA_Character_compare.txt?rev=1007&view=markup

Detailed:
https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/JDK-7/j_l_Character_charCount/log/PA_Character.xml?rev=1006&view=markup

Little NetBeans project:
https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/JDK-7/j_l_Character_charCount/

Now I have two patches in my mq queue.
Martin, how do I create 2 exports in the form, you would like?
Should I use hg export with some magic option?

-Ulf


Reply via email to