Running karatasi java 0.2.1 from the download, or a newly compiled svn2403. It is extremely slow. Listing a database with 20 cards takes about 20 seconds.
I have Mac OS X Leopard
$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-9M3125)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
I tested the download (release 0.2.1), but I see no issue with the performance. Only for *very* large tables the scrolling could be faster.
Can it be your Java version? I have 1.5, and only a 32 bit machine.
My configuration:
Mac OS X 10.5.8 (Leopard), Processor 2 GHz Intel Core Duo, Memory 1.5 GB.
My Runtime Properties as seen in the karatasi help menu:
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.5.0_22
java.vm.info=mixed mode, sharing
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=1.5.0_22-147
My Java version as seen on the command line:
$ Java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03-333-9M3125)
Java HotSpot(TM) Client VM (build 1.5.0_22-147, mixed mode, sharing)
Observation: The current implementation opens and closes the database all the time which is nonsense. I have opened the tracker item #2999044 for this issue.
Still I cannot believe that this is the whole story (why is it so much slower on a Java-6 machine than on a Java-5 machine??).
Luboš writes (see his emails of 10-May-2010):
I have noticed this performance issue too but I ignored it. In the evening I will send you what java I use.
I used only 32 bit java for development even on 64 bit hardware because of java problems. I suppose that Mathias' command-line java is JRE and Eclipse one is JDK.
So I have 64bit Java too:
banter:~ lubos$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
karatasi has a tab with runtime properties in its help menu.
Starting karatasi from the command line on Mathias' machine has unacceptable slow execution and gives:
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.6.0_17-b04-248-9M3125
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.6.0_17
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=14.3-b01-101
Starting karatasi from Eclipse on the same machine has normal speed and gives:
java.library.path=.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version=1.5.0_22-b03-333-9M3125
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.5
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.5.0_22
java.vm.info=mixed mode, sharing
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=1.5.0_22-147
The Java-6 provided by Apple seems not to support a 32 bit mode:
nungu:karatasi-java.trunk mathiasx$ java -jar dist/karatasi.jar -d32
Cannot run Java in 32 bit mode. Continuing in 64 bit mode.
Again on the Java-6 machine, I used the Java Preferences.app to configure Java programs started from the command line to run with other VM implementations.
Java-5, 32 bit: normal speed.
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03-333-9M3125)
Java HotSpot(TM) Client VM (build 1.5.0_22-147, mixed mode, sharing)
Runtime properties:
java.home=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
java.io.tmpdir=/var/folders/Nv/NvsNx+UxH6q7ivJmwjqUe++++TQ/-Tmp-/
java.library.path=.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version=1.5.0_22-b03-333-9M3125
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.5
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.5.0_22
java.vm.info=mixed mode, sharing
java.vm.name=Java HotSpot(TM) Client VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=1.5.0_22-147
Java-5, 64 bit: slow.
nungu:karatasi-java.trunk mathiasx$ java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03-333-9M3125)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-147, mixed mode)
Runtime properties:
java.home=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
java.io.tmpdir=/var/folders/Nv/NvsNx+UxH6q7ivJmwjqUe++++TQ/-Tmp-/
java.library.path=.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
java.runtime.version=1.5.0_22-b03-333-9M3125
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.5
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.5.0_22
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=1.5.0_22-147
So the key seems to be indeed the 32 bit Java.
fixed with svn2464. We did remove many many database accesses. Now all data are cached. Works now well on my 64Bit Mac Java.
Ticket moved from /p/karatasi/bugs/282/
Can't be converted: