From: <log...@gm...> - 2008-10-27 16:20:48
|
----- Original Message ----- From: "Ville Voutilainen" <vil...@gm...> To: <dm...@us...> Cc: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; <arm...@li...> Sent: Monday, October 27, 2008 7:15 AM Subject: Re: Time running ANSI-TEST -- Would anyone like to try out this .jar > On Mon, Oct 27, 2008 at 4:56 PM, <log...@gm...> wrote: >> Here is the sources >> unzip them over the current src/ > > Thanks. I'll look into this hopefully later today. > >> Basically am I wanting a sanity to make sure it really is 4 time faster than >> current ABCL. >> If so, then I'll try to slowly create a .patch that is lowest impact >> possible.. Right now (when you look at sources) you'll its way misaligned >> for easy integration. > > What we'd like to have with this kind of changes is 1) patches 2) > explanation of what > the patches try to accomplish. Don't get me wrong, the numbers look > very promising > and thus the modifications are attractive. Still, huge monolithic > patches with little or > no explanation serve no purpose. Me and Erik are of course both > uber-hackers that > can read any uncommented/unexplained code, but even we want sane > patches with explanations. > At least I do, and I'm willing to bet a little more than 0.02 that Erik agrees. > Partial overview of some changes to source but not all: I'll give more complete explainations later: Here is what I think so far that gve it the most improvement http://groups.google.com/group/jvm-languages/msg/29fa6d39db95e846?hl=en Or hopefully I am not just working arround some JDK6.0 bug A big modification was making org.armedbear.lisp.LispObject not extend org.armedbear.lisp.Lisp In the source I made a big Fixnum cache (but the cache did not offer huge improvement.) Moving static fields (Primitives) from holder classes. Removed some casting to allow LispObject to pretend to implement something but throw error when it doesn't. Changed some insteanceofs Working on not catching try { return ( (LispThing)obj).doLispThing(); }(ClassCastException e) { Lisp.type_error(obj,NOTTHING); } Since the castless methods can be added to LispObject. default public LispObject doLispThing() { Lisp.type_error(obj,NOTTHING); } becasue the extra try/catch blocks scare JIT away when inlining a subcall's subcall Renamed some things that were conflicting with my other javalisp. But I still have to turn these things probly into about 6-9 patches and probably 1/3 we'll probly decide to skip. > Did you try testing this multiple times with cold caches (reboot, or > some heavy-enough disk-cache > filler in between), while removing the test-generated fasls in between? Cleaned fasls (abcls) fastidiously After a clean boot: Here is a log: ---------------------------------------------------------------------------------------------------------------------------------- [root@titan ansi-tests]# rm -rf *.abcl ../j/*.abcl ../j/build [root@titan ansi-tests]# cd - /development/mirrors/ABCL-SVN/j [root@titan j]# ant abcl.clean Buildfile: build.xml abcl.clean: BUILD SUCCESSFUL Total time: 0 seconds [root@titan j]# cd - /development/mirrors/ABCL-SVN/ansi-tests [root@titan ansi-tests]# cd - /development/mirrors/ABCL-SVN/j [root@titan j]# ant abcl.jar Buildfile: build.xml abcl.pre-compile: [mkdir] Created dir: /development/mirrors/ABCL-SVN/j/build [mkdir] Created dir: /development/mirrors/ABCL-SVN/j/build/classes [echo] java.version: 1.6.0_0 abcl.copy.lisp: [copy] Copying 198 files to /development/mirrors/ABCL-SVN/j/build/classes abcl.java.warning: [echo] WARNING: Java version 1.6.0_0 not recommended. abcl.compile.java: [javac] Compiling 268 source files to /development/mirrors/ABCL-SVN/j/build/classes [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. abcl.fasls.uptodate: abcl.compile.lisp: [java] Armed Bear Common Lisp 0.0.11 (built Mon Oct 27 2008 08:26:15 PDT) [java] Java 1.6.0_0 Sun Microsystems Inc. [java] OpenJDK 64-Bit Server VM [java] Low-level initialization completed in 0.422 seconds. [java] Startup completed in 5.293 seconds. [java] ; Compiling /development/mirrors/ABCL-SVN/j/build/classes/org/armedbear/lisp/coerce.lisp ... [java] ; (IN-PACKAGE #:SYSTEM) [java] ; (DECLAIM (FTYPE # ...)) [java] ; (DEFUN COERCE-LIST-TO-VECTOR ...) [java] ; (DECLAIM (FTYPE # ...)) ........................... <SNIP> --------------------- [java] ; BUFFER-LIVE-P [java] ; STATUS [java] ; BUFFER-NAME [java] [java] 37.703 seconds real time [java] 71477188 cons cells abcl.compile: [echo] Compiled ABCL with java version: 1.6.0_0 abcl.stamp: abcl.pre-compile: [echo] java.version: 1.6.0_0 abcl.copy.lisp: abcl.java.warning: [echo] WARNING: Java version 1.6.0_0 not recommended. abcl.compile.java: abcl.fasls.uptodate: abcl.compile.lisp: abcl.compile: [echo] Compiled ABCL with java version: 1.6.0_0 abcl.stamp.version: [echo] Building ABCL version: 0.0.11 abcl.stamp.hostname: [echo] abcl.hostname: titan abcl.jar: [root@titan ansi-tests]# java -server -Xms2000m -Xmx3000m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=256m -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+UseFastAccessorMethods -XX:+UseLargePages -XX:-UseSpinning -XX:PreBlockSpin=10 -cp /development/mirrors/ABCL-SVN/j/dist/abcl.jar org.armedbear.lisp.Main --eval '(load "doit.lsp")' OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory (errno = 22). Armed Bear Common Lisp 0.0.11 Java 1.6.0_0 Sun Microsystems Inc. OpenJDK 64-Bit Server VM Low-level initialization completed in 0.35 seconds. Startup completed in 1.151 seconds. ; UNSUPPORTED-FEATURE: FLET: can't handle keyword argument with non-constant initform. ; Unable to compile function DO-TEST ; Compilation unit finished ; The following functions were used but not defined: ; REGRESSION-TEST::COPY-ENTRY WARNING: ;; WARNING: ABCL doesn't support the long form of DEFINE-METHOD-COMBINATION; randomized testing disabled. WARNING: Redefining test LOOP.10.106 ; in (DEFMACRO DEFCLASS-WITH-TESTS ...) ; Caught STYLE-WARNING: ; The variable INITARG-LIST is defined but never used. ; Caught STYLE-WARNING: ; The variable ALLOCATION is defined but never used. ; Compilation unit finished ; Caught 2 STYLE-WARNING conditions ........................... <SNIP> --------------------- CMUCL-TYPE-PROP.32 CMUCL-TYPE-PROP.33 CMUCL-TYPE-PROP.34 48 out of 21702 total tests failed: (DEFINE-SETF-EXPANDER.1 DEFINE-SETF-EXPANDER.6 DEFINE-SETF-EXPANDER.7 MULTIPLE-VALUE-SETQ.5 MULTIPLE-VALUE-SETQ.8 REINITIALIZE-INSTANCE.ERROR.1 SHARED-INITIALIZE.ERROR.4 CHANGE-CLASS.1.11 CHANGE-CLASS.ERROR.4 MAKE-INSTANCE.ERROR.3 MAKE-INSTANCE.ERROR.4 DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21 DEFGENERIC.30 CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2 DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 RESTART-CASE.29 RESTART-CASE.30 RESTART-CASE.31 MAKE-CONDITION.3 MAKE-CONDITION.4 DELETE-PACKAGE.5 DELETE-PACKAGE.6 DO-ALL-SYMBOLS.6 DO-ALL-SYMBOLS.9 DO-ALL-SYMBOLS.12 MAP.48 MAP.SPECIALIZED-STRING.3 TYPE-OF.1 ENSURE-DIRECTORIES-EXIST.8 WITH-OUTPUT-TO-STRING.8 PRINT.RANDOM-STATE.1 PPRINT-FILL.14 PPRINT-FILL.15 PPRINT-LINEAR.14 PPRINT-TABULAR.13 PPRINT-LOGICAL-BLOCK.17 PPRINT-POP.7 PPRINT-POP.8 FORMAT.C.4A FORMATTER.C.4A FORMAT.LOGICAL-BLOCK.CIRCLE.1 FORMAT.LOGICAL-BLOCK.CIRCLE.2 FORMAT.LOGICAL-BLOCK.CIRCLE.3 COMPILE-FILE.17 COMPILE-FILE.18) 152.546 seconds real time 32554003 cons cells ---------------------------------------------------------------------------------------------------------------------------------- Now for the SVN ---------------------------------------------------------------------------------------------------------------------------------- [root@titan ansi-tests]# rm -rf *.abcl ../j/*.abcl ../j/build [root@titan ansi-tests]# cd - /development/mirrors/ABCL-SVN/j [root@titan j]# mv src src-saved [root@titan j]# cp -a ../11366/src/<tab><tab> .cvsignore jpty/ Makefile.in manifest-abcl SampleExtension.java gnu/ Main.java manifest org/ .svn/ [root@titan j]# cp -a ../11366/src . [root@titan j]# ant abcl.clean Buildfile: build.xml abcl.clean: BUILD SUCCESSFUL Total time: 0 seconds [root@titan j]# ant abcl.jar Buildfile: build.xml abcl.pre-compile: [mkdir] Created dir: /development/mirrors/ABCL-SVN/j/build [mkdir] Created dir: /development/mirrors/ABCL-SVN/j/build/classes [echo] java.version: 1.6.0_0 abcl.copy.lisp: [copy] Copying 198 files to /development/mirrors/ABCL-SVN/j/build/classes abcl.java.warning: [echo] WARNING: Java version 1.6.0_0 not recommended. abcl.compile.java: [javac] Compiling 258 source files to /development/mirrors/ABCL-SVN/j/build/classes [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. abcl.fasls.uptodate: abcl.compile.lisp: [java] Armed Bear Common Lisp 0.0.11 (built Mon Oct 27 2008 08:36:07 PDT) [java] Java 1.6.0_0 Sun Microsystems Inc. [java] OpenJDK 64-Bit Server VM [java] Low-level initialization completed in 0.331 seconds. [java] Startup completed in 5.228 seconds. [java] ; Compiling /development/mirrors/ABCL-SVN/j/build/classes/org/armedbear/lisp/coerce.lisp ... [java] ; (IN-PACKAGE #:SYSTEM) [java] ; (DECLAIM (FTYPE # ...)) [java] ; (DEFUN COERCE-LIST-TO-VECTOR ...) [java] ; (DECLAIM (FTYPE # ...)) [java] ; (DEFUN COPY-STRING ...) [java] ; STATUS [java] ; BUFFER-NAME [java] [java] 59.6 seconds real time [java] 71417794 cons cells abcl.compile: [echo] Compiled ABCL with java version: 1.6.0_0 abcl.stamp: abcl.pre-compile: [echo] java.version: 1.6.0_0 abcl.copy.lisp: abcl.java.warning: [echo] WARNING: Java version 1.6.0_0 not recommended. abcl.compile.java: abcl.fasls.uptodate: abcl.compile.lisp: abcl.compile: [echo] Compiled ABCL with java version: 1.6.0_0 abcl.stamp.version: [echo] Building ABCL version: 0.0.11 abcl.stamp.hostname: [echo] abcl.hostname: titan abcl.jar: [jar] Building jar: /development/mirrors/ABCL-SVN/j/dist/abcl.jar BUILD SUCCESSFUL Total time: 1 minute 16 seconds [root@titan j]# cd - /development/mirrors/ABCL-SVN/ansi-tests [root@titan ansi-tests]# java -server -Xms2000m -Xmx3000m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=256m -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+UseFastAccessorMethods -XX:+UseLargePages -XX:-UseSpinning -XX:PreBlockSpin=10 -cp /development/mirrors/ABCL-SVN/j/dist/abcl.jar org.armedbear.lisp.Main --eval '(load "doit.lsp")' OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory (errno = 22). Armed Bear Common Lisp 0.0.11 Java 1.6.0_0 Sun Microsystems Inc. OpenJDK 64-Bit Server VM Low-level initialization completed in 0.251 seconds. Startup completed in 1.002 seconds. ; UNSUPPORTED-FEATURE: FLET: can't handle keyword argument with non-constant initform. ; Unable to compile function DO-TEST ; Compilation unit finished ; The following functions were used but not defined: ; REGRESSION-TEST::COPY-ENTRY WARNING: ;; WARNING: ABCL doesn't support the long form of DEFINE-METHOD-COMBINATION; randomized testing disabled. WARNING: Redefining test LOOP.10.106 ; in (DEFMACRO DEFCLASS-WITH-TESTS ...) ........................... <SNIP> --------------------- CMUCL-TYPE-PROP.32 CMUCL-TYPE-PROP.33 CMUCL-TYPE-PROP.34 48 out of 21702 total tests failed: (DEFINE-SETF-EXPANDER.1 DEFINE-SETF-EXPANDER.6 DEFINE-SETF-EXPANDER.7 MULTIPLE-VALUE-SETQ.5 MULTIPLE-VALUE-SETQ.8 REINITIALIZE-INSTANCE.ERROR.1 SHARED-INITIALIZE.ERROR.4 CHANGE-CLASS.1.11 CHANGE-CLASS.ERROR.4 MAKE-INSTANCE.ERROR.3 MAKE-INSTANCE.ERROR.4 DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21 DEFGENERIC.30 CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2 DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 RESTART-CASE.29 RESTART-CASE.30 RESTART-CASE.31 MAKE-CONDITION.3 MAKE-CONDITION.4 DELETE-PACKAGE.5 DELETE-PACKAGE.6 DO-ALL-SYMBOLS.6 DO-ALL-SYMBOLS.9 DO-ALL-SYMBOLS.12 MAP.48 MAP.SPECIALIZED-STRING.3 TYPE-OF.1 ENSURE-DIRECTORIES-EXIST.8 WITH-OUTPUT-TO-STRING.8 PRINT.RANDOM-STATE.1 PPRINT-FILL.14 PPRINT-FILL.15 PPRINT-LINEAR.14 PPRINT-TABULAR.13 PPRINT-LOGICAL-BLOCK.17 PPRINT-POP.7 PPRINT-POP.8 FORMAT.C.4A FORMATTER.C.4A FORMAT.LOGICAL-BLOCK.CIRCLE.1 FORMAT.LOGICAL-BLOCK.CIRCLE.2 FORMAT.LOGICAL-BLOCK.CIRCLE.3 COMPILE-FILE.17 COMPILE-FILE.18) 660.629 seconds real time 30311789 cons cells [root@titan ansi-tests]# |