This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Another 646 patch and performance comparison with TOWER
- From: Martin Kahlert <martin dot kahlert at infineon dot com>
- To: java-patches at gcc dot gnu dot org, java at gcc dot gnu dot org
- Date: Thu, 28 Mar 2002 12:52:55 +0100
- Subject: Another 646 patch and performance comparison with TOWER
- Reply-to: martin dot kahlert at infineon dot com
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.