This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Another 646 patch and performance comparison with TOWER


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]