Another 646 patch and performance comparison with TOWER

Martin Kahlert martin.kahlert@infineon.com
Thu Mar 28 03:53:00 GMT 2002


Hi!
I would like to see this patch in 3.1.
It replaces the infamous Solaris encoding "646"
by "8859_1" in DEFAULT_FILE_ENCODING.
2002年03月28日 Martin Kahlert <martin.kahlert@infineon.com>
	* java/lang/natSystem.cc (file_encoding): Replace encoding '646' by default
diff -ru gcc-20020325.old/libjava/java/lang/natSystem.cc gcc-20020325/libjava/java/lang/natSystem.cc
--- gcc-20020325.old/libjava/java/lang/natSystem.cc	Mon Mar 18 07:30:24 2002
+++ gcc-20020325/libjava/java/lang/natSystem.cc	Thu Mar 28 12:14:23 2002
@@ -175,7 +175,11 @@
 {
 setlocale (LC_CTYPE, "");
 char *e = nl_langinfo (CODESET);
- if (e == NULL || *e == '0円')
+
+ /* On Solaris the default encoding, as returned by nl_langinfo(),
+ is `646' (aka ASCII), but the Solaris iconv_open() doesn't
+ understand that, so we use the default value instead. */
+ if (e == NULL || *e == '0円' || !strcmp(e, "646"))
 e = "8859_1";
 return e;
 }
Using the new default speeds up my big pure Java application from 47.7 seconds
to 1.7 seconds (without any optimization) and 1.37 seconds with -O2.
This makes the runtime comparable to the runtime obtained with the
TOWER compiler (1.47 seconds).
The unpatched version tried to open a lot of non-existing libs causing the immense slowdown
(i got these values from truss):
 8 times ./gnu/gcj/convert/Output_ASCII.class
 8 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Output_ASCII.la
 8 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Output_ASCII.la
 8 times /lib/lib-gnu-gcj-convert-Output_ASCII
 8 times /lib/lib-gnu-gcj-convert-Output_ASCII.la
 8 times /lib/lib-gnu-gcj-convert-Output_ASCII.so
 8 times /usr/lib/lib-gnu-gcj-convert-Output_ASCII.la
 8 times lib-gnu-gcj-convert-Output_ASCII.la
 16 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Output_ASCII
 16 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Output_ASCII.so
 16 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Output_ASCII
 16 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Output_ASCII.so
 16 times /usr/lib/lib-gnu-gcj-convert-Output_ASCII
 16 times /usr/lib/lib-gnu-gcj-convert-Output_ASCII.so
 1421 times /usr/lib/iconv/646%UCS-2.so
 1421 times /usr/lib/iconv/646%UTF2.so
 2848 times ./gnu/gcj/convert/Input_ASCII.class
 2848 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Input_ASCII.la
 2848 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Input_ASCII.la
 2848 times /lib/lib-gnu-gcj-convert-Input_ASCII
 2848 times /lib/lib-gnu-gcj-convert-Input_ASCII.la
 2848 times /lib/lib-gnu-gcj-convert-Input_ASCII.so
 2848 times /usr/lib/lib-gnu-gcj-convert-Input_ASCII.la
 2848 times lib-gnu-gcj-convert-Input_ASCII.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/lib.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu.la
 2856 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib.la
 2856 times /lib/lib
 2856 times /lib/lib-gnu
 2856 times /lib/lib-gnu-gcj
 2856 times /lib/lib-gnu-gcj-convert
 2856 times /lib/lib-gnu-gcj-convert.la
 2856 times /lib/lib-gnu-gcj-convert.so
 2856 times /lib/lib-gnu-gcj.la
 2856 times /lib/lib-gnu-gcj.so
 2856 times /lib/lib-gnu.la
 2856 times /lib/lib-gnu.so
 2856 times /lib/lib.la
 2856 times /lib/lib.so
 2856 times /usr/lib/lib-gnu-gcj-convert.la
 2856 times /usr/lib/lib-gnu-gcj.la
 2856 times /usr/lib/lib-gnu.la
 2856 times /usr/lib/lib.la
 2856 times lib-gnu-gcj-convert.la
 2856 times lib-gnu-gcj.la
 2856 times lib-gnu.la
 2856 times lib.la
 5696 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Input_ASCII
 5696 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert-Input_ASCII.so
 5696 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Input_ASCII
 5696 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert-Input_ASCII.so
 5696 times /usr/lib/lib-gnu-gcj-convert-Input_ASCII
 5696 times /usr/lib/lib-gnu-gcj-convert-Input_ASCII.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj-convert.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu-gcj.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib-gnu.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/lib.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj-convert.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu-gcj.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib-gnu.so
 5712 times /data/titan_1/kahlert/gcc-3.1/lib/sparcv9/lib.so
 5712 times /usr/lib/lib
 5712 times /usr/lib/lib-gnu
 5712 times /usr/lib/lib-gnu-gcj
 5712 times /usr/lib/lib-gnu-gcj-convert
 5712 times /usr/lib/lib-gnu-gcj-convert.so
 5712 times /usr/lib/lib-gnu-gcj.so
 5712 times /usr/lib/lib-gnu.so
 5712 times /usr/lib/lib.so
Regards,
Martin.
-- 
The early bird catches the worm. If you want something else for 
breakfast, get up later.


More information about the Java mailing list

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