JNI performance
I have a problem with JNI performance. The following simple array manipulation takes twice longer using JNI than pure Java. The dll is compiled under VC++ 4.0. Am I doing something wrong or JNI simply puts out too much overhead when calling C dll?
JNIEXPORT void JNICALL
Java_VisualEffect_zoomR(JNIEnv *env, jobject obj, jint len,jdoubleArray arr, jintArray arr1, jintArray arr2)
jint *carr1, *carr2;
jdouble *rnd;
jint i;
carr1=(*env)->GetIntArrayElements(env, arr1, NULL);
carr2=(*env)->GetIntArrayElements(env, arr2, NULL);
rnd=(*env)->GetDoubleArrayElements(env, arr, NULL);
if ( carr1==NULL|| carr2==NULL )
return 0;
if ( rnd==NULL )
return 0;
for(i=0; i<len; i++)
carr1= carr2[i]*rnd[i];
(*env)->ReleaseIntArrayElements(env, arr1, carr1,0);
(*env)->ReleaseIntArrayElements(env, arr2, carr2,0);
(*env)->ReleaseDoubleArrayElements(env, arr, rnd,0);
Appreciate any suggestions.
Jay
It may also simply be that Java is actually faster than C in this trivial case or there is no difference and so the overhead matters. How big are these arrays?
Similar Messages
-
Hi All, I got a problem when using jni.
The JNI program is used to call a c program for computing the maximum clique of a graph.
When testing this program in its only main function, its speed is okay. For a graph with 2000 nodes and 300,000 edges, it takes 2 seconds.
However, when I incorporated this JNI program into my own program, its performance greatly degraded. Given a graph with the same size in above example, it takes 50 seconds to finish computing.
I do not know what's wrong with the program. Before calling the jni program, I will load many data into the memory. Whether this affects the performance?
thank you for your help!Hi All, I got a problem when using jni.
The JNI program is used to call a c program for
computing the maximum clique of a graph.
When testing this program in its only main function,
its speed is okay. For a graph with 2000 nodes and
300,000 edges, it takes 2 seconds.
However, when I incorporated this JNI program into my
own program, its performance greatly degraded. Given
a graph with the same size in above example, it takes
50 seconds to finish computing.
I do not know what's wrong with the program. Before
calling the jni program, I will load many data into
the memory. Whether this affects the performance? Load it how? From a file? Do you load the data using native code or Java code?
Do you make a large number of JNI calls during the computation? -
I just wrote a C++ dll that mimicks the function of buffered reader. However, it is 3 times slower to perform the i/o operations using JNI than using Java's classes. Also, using the exact same code, the c++ is almost 2 times faster writing and almost 5 times reading.
Hallo,
If I have understood you correctly, you have carried out two tests:
1. A test using Java and your own JNI code.
2. A test using pure C++ to call your JNI functions, or to do much the same as your JNI code.
I cannot say that I am surprised about your results. Sun have certainly devoted some effort over a longer time to making their native methods perform well. Perhaps they also use JNI API calls that are not published, so that the code runs faster (although I have no evidence for this).
I am sure that it would be possible to tune your code. It would pay to look at your code, to see if you could oprimise some of the loops. Have you used a performance analyser to see which Java methods are taking the time? -
I write a JNI rsa digital signature verify program ,use openssl C function,through JNI.but my java program run under multithread( 8 threads,because my computer is 8 cpus), it performance (verify times) 5000*8, but when I run openssl speed rsa1024 test multi 8,it performance can high to 8000*8.
Can someone tell me why the performance lost so much? is it lost at the java byte[] data trans to c "unsigned char *" data and the c unsigned char* data trans back java?windshome wrote:
because the performance of rsa in java in poor.
java implements only reach 3300/cpu/second,but openssl implement it ,performance reach to 8000/cpu/second.You have a business case where you want to verify/create 64,000 (8 cpus x 8000) digital signatures a second on a sustained basis?
And where 26,000 a second is not sufficient?
Last time I checked credit card transactions for the entire US in 2003 (or so) was 1,700 a second. (And for that case the service provider processing is seconds if not longer.) And no single source does all of them.
Only possibility I can think of for that is some military application but it would seem that a setup that required 8 cpus could probably afford two boxes. Or even eight. -
How to read long line from text file
Hi,
I just faced problem when reading a big text file.
BufferedReader br = new BufferedReader(new FileReader("D:\\afile.txt"));
String str;
int i;
while ((str = br.readLine())!=null)
i++;
//do some work here...
...This code throws exception:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceSo I thought file line is very long. When I opened it in FAR it only displays no more than 4096 characters as a line.
Help me to read a text file that's line is very long?try,
$ java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xrunhprof[:help]|[:<option>=<value>, ...]
perform JVMPI heap, cpu, or monitor profiling
-Xdebug enable remote debugging
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
The -X options are non-standard and subject to change without notice. -
Out of memory errors w/ MappedByteBuffers
Hello,
I'm having problems using a MappedByteBuffer on a file that is just over 1 gig. I see this error:
file size: 1104924640
java.io.IOException: Map failed
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:761)
at com.ibm.esupport.Test.main(Test.java:32)
Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:758)
... 1 moreHowever, if I use the same code on a file of only 600 mb, it runs just fine. I also notice if I set incremental garbage collection on run (-Xincgc), it'll work on the 1 gig file but perf seems slower (to me). Here is my code:
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class Test {
public static void main(String[] args) {
String filename = "c:/tmp/my_large_file";
// open file
File f = new File(filename);
FileInputStream in = null;
try {
in = new FileInputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.exit(0);
FileChannel fc = in.getChannel();
MappedByteBuffer bb = null;
try {
// Get the file's size and then map it into memory
long sz = fc.size();
//DEBUGGING
System.out.println("file size: " + sz);
bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sz);
} catch (IOException e) {
e.printStackTrace();
System.exit(0);
// close flie
try {
bb.clear();
bb = null;
fc.close();
fc = null;
in.close();
in = null;
} catch (IOException e) {
e.printStackTrace();
}I'm running this on Windows XP Professional with 2 gig of RAM. Any help or direction anyone could give I'd appreciate it. I'd rather not run with incremental garbage collection. Shouldn't this work?
-jeffgive the jvm more memory
with -Xms
-Xmx
java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.} -
Help debugging JVM crash on linux
Does anybody have any tips on debugging JVM crashes?
I have a third-party shared library that I link in and use through JNI bindings.
When I use this third party application with the 1.6.0 JVM on red hat enterprise linux, it causes the JVM to unpredictably SEGV.
I'm stumped, I don't know how to debug this since I don't have source code for either the third-party app or for the JVM.
Even some thoughts about what might cause the JVM to do this would be great. I've looked in depth at signals and signal handling but didn't find anything wrong there.
Help!
# An unexpected error has been detected by Java Runtime Environment:
# SIGSEGV (0xb) at pc=0x00000000, pid=14312, tid=1319668656
# Java VM: Java HotSpot(TM) Client VM (1.6.0_01-b06 mixed mode)
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
--------------- T H R E A D ---------------
Current thread (0x4a9a2400): JavaThread "AWT-EventQueue-0" [_thread_in_vm_trans, id=14327]
siginfo:
[error occurred during error reporting, step 90, id 0xb]
Stack: [0x4ea38000,0x4ea89000), sp=0x4ea870dc, free space=316k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x3ae327]
V [libjvm.so+0x3aef34]
C [libpthread.so.0+0xaf80]
V [libjvm.so+0x3add75]
V [libjvm.so+0x3ae327]
V [libjvm.so+0x3079c0]
V [libjvm.so+0x305278]
C [libc.so.6+0x280d8]
j java.awt.MediaTracker.statusID(IZZ)I+47
j java.awt.MediaTracker.waitForID(IJ)Z+16
j javax.swing.ImageIcon.loadImage(Ljava/awt/Image;)V+24
j javax.swing.ImageIcon.<init>([B)V+82
j sun.swing.ImageIconUIResource.<init>([B)V+2
j sun.swing.SwingUtilities2$2.createValue(Ljavax/swing/UIDefaults;)Ljava/lang/Object;+69
J javax.swing.UIDefaults.getFromHashtable(Ljava/lang/Object;)Ljava/lang/Object;
J javax.swing.UIDefaults.get(Ljava/lang/Object;)Ljava/lang/Object;
J javax.swing.MultiUIDefaults.get(Ljava/lang/Object;)Ljava/lang/Object;
j javax.swing.UIDefaults.getIcon(Ljava/lang/Object;)Ljavax/swing/Icon;+2
j javax.swing.UIManager.getIcon(Ljava/lang/Object;)Ljavax/swing/Icon;+4
j javax.swing.plaf.basic.BasicFileChooserUI.installIcons(Ljavax/swing/JFileChooser;)V+48
j javax.swing.plaf.basic.BasicFileChooserUI.installDefaults(Ljavax/swing/JFileChooser;)V+2
j javax.swing.plaf.basic.BasicFileChooserUI.installUI(Ljavax/swing/JComponent;)V+39
j javax.swing.plaf.metal.MetalFileChooserUI.installUI(Ljavax/swing/JComponent;)V+2
j javax.swing.JComponent.setUI(Ljavax/swing/plaf/ComponentUI;)V+135
j javax.swing.JFileChooser.updateUI()V+40
j javax.swing.JFileChooser.setup(Ljavax/swing/filechooser/FileSystemView;)V+18
j javax.swing.JFileChooser.<init>(Ljava/io/File;Ljavax/swing/filechooser/FileSystemView;)V+133
j javax.swing.JFileChooser.<init>()V+9
j com.coventor.misc.FontPicker$2.actionPerformed(Ljava/awt/event/ActionEvent;)V+4
j javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j javax.swing.DefaultButtonModel.setPressed(Z)V+117
j javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19
j java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+156
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j java.awt.EventDispatchThread.run()V+9
v ~StubRoutines::call_stub
V [libjvm.so+0x209a4d]
V [libjvm.so+0x305bc8]
V [libjvm.so+0x209360]
V [libjvm.so+0x2093ed]
V [libjvm.so+0x279605]
V [libjvm.so+0x38076f]
V [libjvm.so+0x306aa3]
C [libpthread.so.0+0x4dd8]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.awt.MediaTracker.statusID(IZZ)I+47
j java.awt.MediaTracker.waitForID(IJ)Z+16
j javax.swing.ImageIcon.loadImage(Ljava/awt/Image;)V+24
j javax.swing.ImageIcon.<init>([B)V+82
j sun.swing.ImageIconUIResource.<init>([B)V+2
j sun.swing.SwingUtilities2$2.createValue(Ljavax/swing/UIDefaults;)Ljava/lang/Object;+69
J javax.swing.UIDefaults.getFromHashtable(Ljava/lang/Object;)Ljava/lang/Object;
J javax.swing.UIDefaults.get(Ljava/lang/Object;)Ljava/lang/Object;
J javax.swing.MultiUIDefaults.get(Ljava/lang/Object;)Ljava/lang/Object;
j javax.swing.UIDefaults.getIcon(Ljava/lang/Object;)Ljavax/swing/Icon;+2
j javax.swing.UIManager.getIcon(Ljava/lang/Object;)Ljavax/swing/Icon;+4
j javax.swing.plaf.basic.BasicFileChooserUI.installIcons(Ljavax/swing/JFileChooser;)V+48
j javax.swing.plaf.basic.BasicFileChooserUI.installDefaults(Ljavax/swing/JFileChooser;)V+2
j javax.swing.plaf.basic.BasicFileChooserUI.installUI(Ljavax/swing/JComponent;)V+39
j javax.swing.plaf.metal.MetalFileChooserUI.installUI(Ljavax/swing/JComponent;)V+2
j javax.swing.JComponent.setUI(Ljavax/swing/plaf/ComponentUI;)V+135
j javax.swing.JFileChooser.updateUI()V+40
j javax.swing.JFileChooser.setup(Ljavax/swing/filechooser/FileSystemView;)V+18
j javax.swing.JFileChooser.<init>(Ljava/io/File;Ljavax/swing/filechooser/FileSystemView;)V+133
j javax.swing.JFileChooser.<init>()V+9
j com.coventor.misc.FontPicker$2.actionPerformed(Ljava/awt/event/ActionEvent;)V+4
j javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j javax.swing.DefaultButtonModel.setPressed(Z)V+117
j javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19
j java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+156
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j java.awt.EventDispatchThread.run()V+9
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x4a954800 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=14331]
0x4a9fd400 JavaThread "DestroyJavaVM" [_thread_blocked, id=14315]
=>0x4a9a2400 JavaThread "AWT-EventQueue-0" [_thread_in_vm_trans, id=14327]
0x4a99c000 JavaThread "AWT-Shutdown" [_thread_blocked, id=14326]
0x4a97fc00 JavaThread "AWT-XAWT" daemon [_thread_blocked, id=14325]
0x08292c00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=14323]
0x4a902000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=14321]
0x4a900800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=14320]
0x080bb400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=14319]
0x080ab400 JavaThread "Finalizer" daemon [_thread_blocked, id=14318]
0x080a7000 JavaThread "Reference Handler" daemon [_thread_blocked, id=14317]
Other Threads:
0x080a4000 VMThread [id=14316]
0x4a90b800 WatcherThread [id=14322]
VM state:synchronizing (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x08056b90/0x08056bb8] Safepoint_lock - owner thread: 0x080a4000
[0x08056c10/0x08056c38] Threads_lock - owner thread: 0x080a4000
Heap
def new generation total 960K, used 348K [0x422e0000, 0x423e0000, 0x427c0000)
eden space 896K, 31% used [0x422e0000, 0x423270d0, 0x423c0000)
from space 64K, 100% used [0x423d0000, 0x423e0000, 0x423e0000)
to space 64K, 0% used [0x423c0000, 0x423c0000, 0x423d0000)
tenured generation total 4096K, used 950K [0x427c0000, 0x42bc0000, 0x462e0000)
the space 4096K, 23% used [0x427c0000, 0x428adae0, 0x428adc00, 0x42bc0000)
compacting perm gen total 12288K, used 9535K [0x462e0000, 0x46ee0000, 0x4a2e0000)
the space 12288K, 77% used [0x462e0000, 0x46c2fe78, 0x46c30000, 0x46ee0000)
No shared spaces configured.
Dynamic libraries:
06000000-06412000 r-xp 00000000 00:0b 457890057 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/client/libjvm.so
06412000-0642b000 rwxp 00412000 00:0b 457890057 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/client/libjvm.so
0642b000-0684a000 rwxp 00000000 00:00 0
08048000-08052000 r-xp 00000000 00:0b 457826569 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/bin/java
08052000-08053000 rwxp 00009000 00:0b 457826569 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/bin/java
08053000-082d9000 rwxp 00000000 00:00 0
40000000-40015000 r-xp 00000000 08:02 507907 /lib/ld-2.3.2.so
40015000-40016000 rwxp 00015000 08:02 507907 /lib/ld-2.3.2.so
40016000-40017000 rwxp 00000000 00:00 0
40017000-40018000 ---p 00000000 00:00 0
40018000-40019000 rwxp 00000000 00:00 0
40019000-4001f000 r-xp 00000000 00:0b 457959177 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/native_threads/libhpi.so
4001f000-40020000 rwxp 00006000 00:0b 457959177 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/native_threads/libhpi.so
40020000-40028000 rwxs 00000000 08:02 1917749 /tmp/hsperfdata_ken/14312
40028000-40029000 r-xp 00000000 00:0b 650339 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libnativelib.so
40029000-4002a000 rwxp 00000000 00:0b 650339 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libnativelib.so
4002a000-4002b000 r-xp 00000000 08:02 2064395 /usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2
4002b000-4002c000 rwxp 00000000 08:02 2064395 /usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2
4002c000-40039000 r-xp 00000000 08:02 2818055 /lib/tls/libpthread-0.60.so
40039000-4003a000 rwxp 0000c000 08:02 2818055 /lib/tls/libpthread-0.60.so
4003a000-4003c000 rwxp 00000000 00:00 0
4003c000-40043000 r-xp 00000000 00:0b 457891593 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/jli/libjli.so
40043000-40045000 rwxp 00006000 00:0b 457891593 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/jli/libjli.so
40045000-40047000 r-xp 00000000 08:02 507920 /lib/libdl-2.3.2.so
40047000-40048000 rwxp 00001000 08:02 507920 /lib/libdl-2.3.2.so
40048000-4017b000 r-xp 00000000 08:02 2818050 /lib/tls/libc-2.3.2.so
4017b000-4017e000 rwxp 00132000 08:02 2818050 /lib/tls/libc-2.3.2.so
4017e000-40182000 rwxp 00000000 00:00 0
40182000-401a3000 r-xp 00000000 08:02 2818053 /lib/tls/libm-2.3.2.so
401a3000-401a4000 rwxp 00021000 08:02 2818053 /lib/tls/libm-2.3.2.so
401a4000-401a7000 ---p 00000000 00:00 0
401a7000-401f5000 rwxp 00003000 00:00 0
401f5000-40200000 r-xp 00000000 00:0b 457957641 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libverify.so
40200000-40201000 rwxp 0000b000 00:0b 457957641 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libverify.so
40201000-40205000 r-xp 00000000 08:02 360496 /usr/X11R6/lib/libXtst.so.6.1
40205000-40206000 rwxp 00004000 08:02 360496 /usr/X11R6/lib/libXtst.so.6.1
40206000-40207000 rwxp 00000000 00:00 0
4020a000-4021b000 r-xp 00000000 08:02 507924 /lib/libnsl-2.3.2.so
4021b000-4021c000 rwxp 00011000 08:02 507924 /lib/libnsl-2.3.2.so
4021c000-4021e000 rwxp 00000000 00:00 0
4021e000-40241000 r-xp 00000000 00:0b 457913353 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libjava.so
40241000-40243000 rwxp 00023000 00:0b 457913353 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libjava.so
40243000-40252000 r-xp 00000000 00:0b 457957897 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libzip.so
40252000-40254000 rwxp 0000e000 00:0b 457957897 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libzip.so
40254000-4032c000 rwxp 00000000 00:00 0
4032c000-42254000 rwxp 000d8000 00:00 0
42254000-42258000 rwxp 00000000 00:00 0
42258000-422d4000 rwxp 02004000 00:00 0
422d4000-422db000 r-xp 00000000 08:02 360480 /usr/X11R6/lib/libXi.so.6.0
422db000-422dc000 rwxp 00006000 08:02 360480 /usr/X11R6/lib/libXi.so.6.0
422e0000-423e0000 rwxp 00000000 00:00 0
423e0000-427c0000 rwxp 0218c000 00:00 0
427c0000-42bc0000 rwxp 00000000 00:00 0
42bc0000-462e0000 rwxp 0296c000 00:00 0
462e0000-46ee0000 rwxp 00000000 00:00 0
46ee0000-4a2e0000 rwxp 06c8c000 00:00 0
4a2e0000-4a2e1000 rwxp 00000000 00:00 0
4a2e1000-4a2e2000 rwxp 0a08d000 00:00 0
4a2e2000-4a2e5000 rwxp 00000000 00:00 0
4a2e5000-4a300000 rwxp 0a091000 00:00 0
4a300000-4a306000 rwxp 00000000 00:00 0
4a306000-4a320000 rwxp 0a0b2000 00:00 0
4a320000-4a324000 rwxp 00000000 00:00 0
4a324000-4a33f000 rwxp 00003000 00:00 0
4a33f000-4a346000 rwxp 00000000 00:00 0
4a346000-4a360000 rwxp 00025000 00:00 0
4a360000-4a4db000 r-xs 02c75000 00:0b 458017033 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/rt.jar
4a4db000-4a50b000 rwxp 00000000 00:00 0
4a50b000-4a50c000 ---p 00030000 00:00 0
4a50c000-4a58c000 rwxp 00031000 00:00 0
4a58c000-4a58f000 ---p 000b1000 00:00 0
4a58f000-4a5dd000 rwxp 000b4000 00:00 0
4a5dd000-4a5e0000 ---p 00102000 00:00 0
4a5e0000-4a62e000 rwxp 00105000 00:00 0
4a62e000-4a82e000 r-xp 00000000 08:02 3342341 /usr/lib/locale/locale-archive
4a82e000-4a831000 ---p 00000000 00:00 0
4a831000-4a87f000 rwxp 00003000 00:00 0
4a87f000-4a882000 ---p 00051000 00:00 0
4a882000-4aa00000 rwxp 00054000 00:00 0
4aa00000-4aa03000 ---p 00000000 00:00 0
4aa03000-4aa51000 rwxp 00003000 00:00 0
4aa51000-4aa52000 ---p 00051000 00:00 0
4aa52000-4aad2000 rwxp 00052000 00:00 0
4aad2000-4ab4d000 r-xp 00000000 00:0b 457897225 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libawt.so
4ab4d000-4ab54000 rwxp 0007b000 00:0b 457897225 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libawt.so
4ab54000-4ab78000 rwxp 00000000 00:00 0
4ab78000-4ac3e000 r-xp 00000000 00:0b 457929481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libmlib_image.so
4ac3e000-4ac3f000 rwxp 000c5000 00:0b 457929481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libmlib_image.so
4ac3f000-4ac7d000 r-xp 00000000 00:0b 457961481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/xawt/libmawt.so
4ac7d000-4ac80000 rwxp 0003d000 00:0b 457961481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/xawt/libmawt.so
4ac80000-4ac93000 r-xp 00000000 00:0b 457941513 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libnet.so
4ac93000-4ac94000 rwxp 00013000 00:0b 457941513 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libnet.so
4ac95000-4aca2000 r-xp 00000000 08:02 360472 /usr/X11R6/lib/libXext.so.6.4
4aca2000-4aca3000 rwxp 0000c000 08:02 360472 /usr/X11R6/lib/libXext.so.6.4
4aca3000-4ad7f000 r-xp 00000000 08:02 360462 /usr/X11R6/lib/libX11.so.6.2
4ad7f000-4ad82000 rwxp 000db000 08:02 360462 /usr/X11R6/lib/libX11.so.6.2
4ad82000-4b47e000 r-xp 00000000 00:0b 458691848 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaABlend.so
4b47e000-4b48b000 rwxp 006fb000 00:0b 458691848 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaABlend.so
4b48b000-4b48d000 rwxp 00000000 00:00 0
4b48d000-4b9da000 r-xp 00000000 00:0b 458693129 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaALops.so
4b9da000-4b9e3000 rwxp 0054c000 00:0b 458693129 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaALops.so
4b9e3000-4b9e6000 rwxp 00000000 00:00 0
4b9e6000-4ba23000 r-xp 00000000 00:0b 458693385 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAPart.so
4ba23000-4ba25000 rwxp 0003c000 00:0b 458693385 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAPart.so
4ba25000-4be22000 r-xp 00000000 00:0b 458693641 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaASurf.so
4be22000-4be28000 rwxp 003fc000 00:0b 458693641 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaASurf.so
4be28000-4be29000 rwxp 00000000 00:00 0
4be29000-4bfbb000 r-xp 00000000 00:0b 458694153 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAVis.so
4bfbb000-4bfc0000 rwxp 00192000 00:0b 458694153 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAVis.so
4bfc0000-4bfc1000 rwxp 00000000 00:00 0
4bfc1000-4c033000 r-xp 00000000 00:0b 458694409 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAWarp.so
4c033000-4c035000 rwxp 00071000 00:0b 458694409 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAWarp.so
4c035000-4e20d000 r-xp 00000000 00:0b 458692104 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaACIS.so
4e20d000-4e252000 rwxp 021d7000 00:0b 458692104 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaACIS.so
4e252000-4e26b000 rwxp 00000000 00:00 0
4e26b000-4e64b000 r-xp 00000000 00:0b 458694665 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaBase.so
4e64b000-4e659000 rwxp 003e0000 00:0b 458694665 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaBase.so
4e659000-4e65e000 rwxp 00000000 00:00 0
4e65e000-4e66a000 r-xp 00000000 08:02 1228857 /usr/lib/libz.so.1.1.4
4e66a000-4e66c000 rwxp 0000b000 08:02 1228857 /usr/lib/libz.so.1.1.4
4e66c000-4e671000 r-xp 00000000 08:02 507918 /lib/libcrypt-2.3.2.so
4e671000-4e672000 rwxp 00004000 08:02 507918 /lib/libcrypt-2.3.2.so
4e672000-4e699000 rwxp 00000000 00:00 0
4e699000-4e6e6000 r-xp 00000000 08:02 360494 /usr/X11R6/lib/libXt.so.6.0
4e6e6000-4e6ea000 rwxp 0004c000 08:02 360494 /usr/X11R6/lib/libXt.so.6.0
4e6ea000-4e793000 r-xp 00000000 08:02 1228905 /usr/lib/libstdc++.so.5.0.3
4e793000-4e798000 rwxp 000a8000 08:02 1228905 /usr/lib/libstdc++.so.5.0.3
4e798000-4e79d000 rwxp 00000000 00:00 0
4e79d000-4e7a5000 r-xp 00000000 08:02 508037 /lib/libgcc_s-3.2.3-20040701.so.1
4e7a5000-4e7a6000 rwxp 00007000 08:02 508037 /lib/libgcc_s-3.2.3-20040701.so.1
4e7a6000-4e862000 r-xp 00000000 00:0b 458691592 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAAsm.so
4e862000-4e865000 rwxp 000bb000 00:0b 458691592 /mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing/libSpaAAsm.so
4e865000-4e86c000 r-xp 00000000 08:02 360460 /usr/X11R6/lib/libSM.so.6.0
4e86c000-4e86d000 rwxp 00007000 08:02 360460 /usr/X11R6/lib/libSM.so.6.0
4e86d000-4e881000 r-xp 00000000 08:02 360456 /usr/X11R6/lib/libICE.so.6.3
4e881000-4e882000 rwxp 00013000 08:02 360456 /usr/X11R6/lib/libICE.so.6.3
4e882000-4e884000 rwxp 00000000 00:00 0
4e884000-4e902000 r-xp 00000000 00:0b 457903625 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libfontmanager.so
4e902000-4e90c000 rwxp 0007e000 00:0b 457903625 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libfontmanager.so
4e90c000-4e911000 rwxp 00000000 00:00 0
4e911000-4e914000 ---p 00005000 00:00 0
4e914000-4e962000 rwxp 00008000 00:00 0
4e962000-4e969000 r-xp 00000000 00:0b 457941769 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libnio.so
4e969000-4e96a000 rwxp 00006000 00:0b 457941769 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libnio.so
4e96a000-4e970000 r-xs 00000000 08:02 2441410 /usr/lib/gconv/gconv-modules.cache
4e970000-4e977000 r-xs 00106000 00:0b 458016777 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/resources.jar
4e985000-4e98d000 r-xp 00000000 08:02 360470 /usr/X11R6/lib/libXcursor.so.1.0
4e98d000-4e98e000 rwxp 00007000 08:02 360470 /usr/X11R6/lib/libXcursor.so.1.0
4e98e000-4e995000 r-xp 00000000 08:02 360492 /usr/X11R6/lib/libXrender.so.1.2.2
4e995000-4e996000 rwxp 00006000 08:02 360492 /usr/X11R6/lib/libXrender.so.1.2.2
4e996000-4e999000 ---p 00000000 00:00 0
4e999000-4e9e7000 rwxp 00003000 00:00 0
4e9e7000-4e9ea000 ---p 00051000 00:00 0
4e9ea000-4ea38000 rwxp 00054000 00:00 0
4ea38000-4ea3b000 ---p 000a2000 00:00 0
4ea3b000-4ea89000 rwxp 000a5000 00:00 0
4ea89000-4ea8c000 ---p 000f3000 00:00 0
4ea8c000-4eb23000 rwxp 000f6000 00:00 0
4eb23000-4eb77000 r-xp 00000000 00:0b 457897481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libcmm.so
4eb77000-4eb7a000 rwxp 00054000 00:0b 457897481 /mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/libcmm.so
4eb7a000-4eb96000 r-xp 00000000 08:02 2064760 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
4eb96000-4eb98000 rwxp 0001c000 08:02 2064760 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2
4ec00000-4ec99000 rwxp 00086000 00:00 0
4ec99000-4ed00000 ---p 00000000 00:00 0
bfff7000-c0000000 rwxp ffff9000 00:00 0
VM Arguments:
java_command: com.coventor.misc.FontPicker
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=/mnt/tools/intel/fc/9.0/bin:/mnt/users/ken/builds/cware/trunk/memcad/bin:/mnt/users/ken/builds/cware/trunk/memcad/bin/linux:/mnt/users/ken/builds/cware/trunk/memcad/bin/linux:/mnt/builds_linux/trunk/current/debug/memcad/bin:/mnt/builds_linux/trunk/current/debug/memcad/bin/linux:/mnt/users/ken/builds/cware/trunk/memcad/src/test/tools/scripts:/mnt/users/ken/builds/cware/trunk/memcad/src/test/tools/linux:/mnt/builds_linux/trunk/current/debug/memcad/src/test/tools/scripts:/mnt/builds_linux/trunk/current/debug/memcad/src/test/tools/linux:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/bin:.:/mnt/users/ken/bin:/mnt/users/ken/scripts:/bin:/usr/bin:/usr/sbin:/usr/lang:/usr/ucb:/usr/local/bin:/etc:/usr/dt/bin:/usr/kerberos/bin:/usr/X11R6/bin:/usr/X11R6/bin:/opt/ken/WindRiver/SNiFF+-4.0.2/bin:/mnt/users/ken/local/graphviz/graphviz-1.12/dotneato:/mnt/tools/bin
LD_LIBRARY_PATH=/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/client:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/../lib/i386:/mnt/tools/intel/fc/9.0/lib:/mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing:/mnt/users/ken/builds/cware/trunk/memcad/lib/linux/mech:/mnt/users/ken/builds/cware/trunk/memcad/lib/linux/missing:/mnt/builds_linux/trunk/current/debug/memcad/lib/linux/missing:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/client:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/native_threads:/mnt/users/ken/builds/cware/trunk/memcad/runtime/jre/1.6.0_01/linux/lib/i386/xawt
SHELL=/usr/local/bin/tcsh
DISPLAY=wheelie.memcad.com:0.0
HOSTTYPE=i386-linux
OSTYPE=linux
ARCH=linux
MACHTYPE=i386
Signal Handlers:
SIGSEGV: [libjvm.so+0x3aeee0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000000, flags was changed from 0x10000004, consider using jsig library
SIGBUS: [libjvm.so+0x3aeee0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000000, flags was changed from 0x10000004, consider using jsig library
SIGFPE: [libjvm.so+0x305260], sa_mask[0]=0x00000080, sa_flags=0x10000000, flags was changed from 0x10000004, consider using jsig library
SIGPIPE: [libjvm.so+0x305260], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x305260], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x307270], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x306c90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x306c90], sa_mask[0]=0x00000002, sa_flags=0x10000000
SIGQUIT: [libjvm.so+0x306c90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x306c90], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR2: [libjvm.so+0x307270], sa_mask[0]=0x00000000, sa_flags=0x10000004
--------------- S Y S T E M ---------------
OS:Red Hat Enterprise Linux WS release 3 (Taroon Update 8)
uname:Linux 2.4.21-32.ELsmp #1 SMP Fri Apr 15 21:17:59 EDT 2005 i686
libc:glibc 2.3.2 NPTL 0.60
rlimit: STACK infinity, CORE 0k, NPROC 7168, NOFILE 1024, AS infinity
load average:0.06 0.06 0.02
CPU:total 2 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
Memory: 4k page, physical 4029580k(1730940k free), swap 2096472k(2096472k free)
vm_info: Java HotSpot(TM) Client VM (1.6.0_01-b06) for linux-x86, built on Mar 14 2007 01:00:53 by "java_re" with gcc 3.2.1-7a (J2SE release)Hi there,
Since you said you use JNI, did you try to use the -Xcheck:jni parameter? It will perform some extra consistency checks when calling JNI, at the expense of maybe some loss in JNI performance. This might catch any problems that might occur at the JNI level. Of course, if the third-party library has bugs and corrupts the VM heap, there's no much we can do.
Regards,
Tony, HS GC Group -
Hi all,
My applet works fine on Windows, but it fails on Macs sometimes.
To access the applet:
1) Click here: http://www.cengraving.com/s/z/Personalized-gifts/Card-holders/CH003.jsp
2) Click "Customize."
On Firefox and Safari on the Mac, the applet crashes when you attempt to add a second line, or if you click one of the drop down menus and then try to type text in. This is a nasty bug. It brings down the browser as well. The bug happens every time, and I don't know how to debug the applet because no exceptions are getting logged anywhere.
The applet is stable on Windows, and it works fine in IE on the Mac I tried. IE was using JRE 1.3.x while Firefox and Safari were using 1.4.2_07.
Anyone have advice on how to troubleshoot the applet?Hi there,
Since you said you use JNI, did you try to use the -Xcheck:jni parameter? It will perform some extra consistency checks when calling JNI, at the expense of maybe some loss in JNI performance. This might catch any problems that might occur at the JNI level. Of course, if the third-party library has bugs and corrupts the VM heap, there's no much we can do.
Regards,
Tony, HS GC Group -
how to increase size of java program......can it be possible.......
i faced this question in the interview......
waiting for your answer....Type java -X on command line. You should get this.
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xrunhprof[:help]|[:<option>=<value>, ...]
perform JVMPI heap, cpu, or monitor profiling
-Xdebug enable remote debugging
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
The -X options are non-standard and subject to change without notice. -
Change of latest version of java
hi,
where can i see the change in java language given by the new release?
thanksI need to know what are the difference between the old version and the latest.I guess your browser isn't able to follow links. Well, here you go, I clicked on the link that the first responded gave you. Mind you, it's not formatted very well:
SCOPE
AREA*/*
COMPONENT
SYNOPSIS
RFE
api
client/2d
ImageIO: GIF writer
[4339415|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4339415]
imp
client/2d
Native Text Rendering Parity
[4726365|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4726365]
imp
client/2d
Improved hardware acceleration on Windows
[5104393|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5104393]
imp
client/2d
Single-threaded rendering for OpenGL pipelines
[6219284|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219284]
api
client/awt
Pop-up splash screen at beginning of Java startup
[4247839|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4247839]
api
client/awt
Java applications can access desktop applications
[6255196|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6255196]
api
client/awt
Improved modal dialogs
[4080029|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4080029]
imp
client/awt
XAWT is the default Toolkit on Solaris
[5049146|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5049146]
api
client/awt
Windows system-tray support
[4310333|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4310333]
imp
client/awt
Better support for input in non-English locales
[4360364|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4360364]
imp
client/awt
Live resizing
[6199167|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6199167]
imp
client/deploy
Improved application deployment across browsers
[6329487|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6329487]
api
client/deploy
Allow JAR files to be shared across installed JREs
[6271065|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6271065]
imp
client/deploy
Improved user experience in JRE/JDK installer
[5079209|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5079209]
imp
client/deploy
Improved security
[6222485|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6222485]
imp
client/deploy
Direct execution of JAR files on Linux
[6211008|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6211008]
imp
client/deploy
Improved desktop integration in Java Web Start
[4625362|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4625362]
imp
client/deploy
Improved IFTW installer
[6198632|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198632]
imp
client/deploy
Improved startup & footprint for plugin/webstart
[6329480|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6329480]
imp
client/deploy
Mozilla Firefox browser support
[6216340|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6216340]
imp
client/deploy
Default Java on Linux
[6211006|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6211006]
imp
client/deploy
Improved user experience in Java Plug-in and Java Web Start
[6205064|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6205064]
imp
client/deploy
Unified download engine
[4802551|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4802551]
imp
client/deploy
Support Mozilla and Firefox family browsers.
[6216340|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6216340]
api
client/dnd
A way to avoid hangs on retrieval of clipboard data
[4818143|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4818143]
imp
client/i18n
Support for important locales
[4324505|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4324505]
imp
client/i18n
Japanese calendar
[4609228|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4609228]
api
client/i18n
Resource bundle enhancements
[5102289|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5102289]
api
client/i18n
Normalizer API
[4221795|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4221795]
api
client/i18n
Pluggable locales: Pluggability for break iterators
[4052440|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4052440]
api
client/i18n
Pluggable locales: Pluggability for locale names, formatters, and collators
[4052440|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4052440]
imp
client/l10n
Chinese localization for JDK tools
[6209342|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6209342]
imp
client/swing
GTK Native L&F Fidelity
[6185456|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6185456]
imp
client/swing
Through-the-stack: Reduced footprint / startup time
[6329480|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6329480]
imp
client/swing
Native look & feel fidelity <!--
<blockquote>
JSR 15: Image IO Framework
<br>
JSR 183: Web Services Message Security APIs
<br>
JSR 185: Java Technology for the Wireless Industry
</blockquote>
-->
imp
client/swing
Avalon Look-and-Feel
[6329475|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6329475]
api
client/swing
JTable sorting, filtering, and highlighting
[4747079|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4747079]
api
client/swing
JTabbedPane: Tabs as Components
[4499556|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4499556]
imp
client/swing
Windows native L&F fidelity
[5106661|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5106661]
api
client/swing
SwingWorker
[4681682|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4681682]
api
client/swing
Improve Drag & Drop features for Swing Components
[4468566|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4468566]
api
client/swing
Extend SpringLayout
[4726194|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4726194]
api
client/swing
Text Document Printing
[4791649|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4791649]
imp
client/swing
Improved Painting Performance (fix grey boxes)
[4967886|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4967886]
jsr
core/core
[JSR 223|http://jcp.org/en/jsr/detail?id=223]: Scripting for the Java Platform
[6249843|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6249843]
api
core/debug
Multiple Simultaneous Agents
[4772582|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4772582]
api
core/debug
Added Heap Capabilities to JPDA
[4914266|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4914266]
api
core/debug
Attach-on-demand
[6173612|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6173612]
api
core/debug
JVMPI and JVMDI have been removed.
[4914266|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4914266]
api
core/jndi
Read-timeout specification for LDAP operations
[6176036|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6176036]
api
core/libs
Array Reallocation API
[4655503|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4655503]
imp
core/libs
BigDecimal optimizations for specjbb++
<!--6177836-->
api
core/libs
Floating point: Add IEEE 754 recommended functions to java.lang.{{,Strict}Math}
[4406429|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4406429]
api
core/libs
Standard service-provider API (java.util.Service)
[4640520|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4640520]
api
core/libs
Collections and Concurrency Updates
[6268386|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6268386]
api
core/libs
IO Enhancement: Password Prompting
[4050435|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435]
api
core/libs
IO Enhancement: File Attributes
[6216563|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6216563]
api
core/libs
IO Enhancement: Method for Discovering Free Disk Space
[4057701|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4057701]
imp
core/libs
IO Enhancement: Long pathnames on Windows
[4403166|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4403166]
api
core/libs
Low-level Java compiler API for IDEs
[4813736|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4813736]
jsr
core/libs
[JSR 202|http://jcp.org/en/jsr/detail?id=202]: Java Class File Specification Update
[4639391|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4639391]
jsr
core/libs
[JSR 199|http://jcp.org/en/jsr/detail?id=199]: Java compiler API
[4164450|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4164450]
imp
core/libs
Improved perceived footprint
[6280693|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6280693]
api
core/libs
Deques
[6192552|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6192552]
api
core/libs
Navigable Maps and Sets
[4155650|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4155650]
imp
core/libs
BitSet Updates
[4963875|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4963875],
[4979017|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4979017],
[4979028|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4979028],
[4979031|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4979031],
[5030267|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5030267],
[6222207|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6222207],
[6404711|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6404711]
imp
core/libs
Performance Improvements when compiling using network file systems
[4770745|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770745]
imp
core/m&m
Improved diagnosability of OutOfMemoryError
[6173515|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6173515]
api
core/m&m
Generic annotations for MBean descriptor contents
[6221321|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6221321]
api
core/m&m
Support for java.util.concurrent locks in the lock related facility
[5086470|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086470]
imp
core/m&m
jconsole is more user-friendly
[6174397|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6174397]
api
core/m&m
Small-scale improvements to JMX Monitor API
[6222961|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6222961]
api
core/m&m
descriptors added to all types of MBean
[6204469|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6204469]
api
core/m&m
MXBeans added to JMX
[6175517|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6175517]<!-- not in beta
<tr>
<td>imp</td>
<td>core/m&m</td>
<td>Improved crash/core-dump handling</td>
<td>6309336</td>
</tr>
-->
api
core/net
Light-weight HTTP server
[6270015|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6270015]
api
core/net
Internationalized resource identifiers
[5085902|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5085902]
api
core/net
Default CookieManager implementation
[6244040|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6244040]
imp
core/net
SPNEGO HTTP authentication
[6260531|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6260531]
api
core/net
International domain names
[4737170|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4737170]
api
core/net
Programmatic access to network parameters
[4691932|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4691932]
imp
core/sec
Native platform GSS integration
[6202035|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6202035],
[6345202|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6345202]
imp
core/sec
SPNEGO in Java GSS
[6239635|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6239635]
imp
core/sec
MS CAPI Keystore provider
[6318171|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6318171]
imp
core/sec
Better support for NSS keystore
[6273877|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6273877]
imp
core/sec
Improved Policy performance
[5037004|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5037004]
imp
core/sec
[JSR 268|http://jcp.org/en/jsr/detail?id=268]: Java Smart Card I/O API
[6239117|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6239117]
jsr
core/sec
[JSR 105|http://jcp.org/en/jsr/detail?id=105]: XML DSig
[4635230|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4635230]
api
core/sec
Enhance certificate APIs
[4635060|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4635060]
jsr
core/tools
[JSR 269|http://jcp.org/en/jsr/detail?id=269]: Standard pluggabilty API for annotation processors (APT)
[6222574|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6222574]
imp
core/tools
javac: Support for split verification
[6227862|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6227862],
[6227862|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6227862],
[5110170|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5110170],
[5110184|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5110184],
[6217263|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6217263]
imp
core/tools
javac: Implement
[JSR 175's|http://jcp.org/en/jsr/detail?id=175]
java.lang.SuppressWarnings
[4986256|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4986256]
imp
core/tools
Class-path wildcards
[6268383|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6268383]
jsr
ee/ee
[JSR 250|http://jcp.org/en/jsr/detail?id=250]: Common annotations
[6304697|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6304697]
imp
ee/jdbc
Extended JDBC-ODBC bridge to enable JDBC 4.0 EoD features
[6290312|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6290312]
jsr
ee/jdbc
[JSR 221|http://jcp.org/en/jsr/detail?id=221]: JDBC 4.0
[6290312|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6290312]
imp
ee/xml
JAXP 1.4
bq. [JSR 206|http://jcp.org/en/jsr/detail?id=206]: Java API for XML Processing
[6317994|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6317994]
jsr
ee/xml
Support for the Web Services stack
bq. [JSR 222|http://jcp.org/en/jsr/detail?id=222]: JAXB 2.0 \\ [JSR 224|http://jcp.org/en/jsr/detail?id=224]: JAX-RPC 2.0[JSR 173|http://jcp.org/en/jsr/detail?id=173]: STAX[JSR 181|http://jcp.org/en/jsr/detail?id=181]: Web Services Metadata
[6245626|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6245626]
<!-- sub JSRs of Web Services stack covered in prior entry
<tr>
<td>jsr</td>
<td>ee/xml</td>
<td>JSR 222: JAXB 2.0</td>
<td>6245626</td>
</tr>
<tr>
<td>jsr</td>
<td>ee/xml</td>
<td>JSR 224: JAX-RPC 2.0</td>
<td>6245626</td>
</tr>
-->
api
ee/xml
JavaBeans Activation Framework (JAF)
[6254474|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6254474]
imp
vm/compilers
Improved performance of compiled code
[5079711|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5079711],
[6206844|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6206844],
<!--
6229114,
-->
[6239807|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6239807],
<!--
6269053
-->
[4850474|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4850474],
[5003419|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003419],
[5004907|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5004907],<!--
5007322,
-->
[5101346|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5101346],
[6190413|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6190413],
[6191063|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6191063],
[6196383|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196383],
[6196722|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196722],
[6211497|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6211497],
[6232485|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6232485],
[6233627|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6233627],
[6245809|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6245809],[6251002|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6251002],<!--
6261602,
-->
[6262235|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6262235],
<!--
6264252,
6284962
-->
imp
vm/c1
Linear scan register allocator for C1
[6320351|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6320351]
imp
vm/c2
Improved loop optimization
<!--
5010187,
-->
[5073662|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5073662],
[5074608|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5074608],
[5091921|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5091921],
[6260293|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6260293]
imp
vm/c2
Escape analysis
<!--
5074913,
-->
[6339956|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6339956]
imp
vm/c2
Lock coarsening
[6245809|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6245809]
imp
vm/gc
CMS: Parallelize concurrent marking
imp
vm/gc
Parallel compaction<!--
4743071
-->
imp
vm/runtime
Improve uncontended synchronization performance <!--
6264252
-->
imp
vm/runtime
Improved performance of contended synchronization operations<!--
5030359
-->
imp
vm/runtime
Faster format checker/class-file parser<!--
4990299
-->
imp
vm/runtime
Improved startup time
[6179212|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6179212]
imp
vm/runtime
Improved runtime performance<!--
6237688
-->
imp
vm/runtime
Improved JNI performance
[5086424|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086424]
imp
vm/runtime
Class circularity detection
[4699981|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4699981]
imp
vm/runtime
DTrace support in the VM -
Hi ,
I need to call C++ from java.
I want to have 10 methods that return primitives and call each one after the other.
Is it better performance (beside the general fact that 10 method calls is more time then 1) to call one method and return a structure of primitives ?
Will it be much worse performance then calling this methods if they were written in java and not in C++ ?You can create a Java object in JNI (you can use an Object array, a String array if you have only Strings, or a true Java class object if you really do not like referring to fields by indexes) and return it. It is a laborious task, but not a complicated issue.
Performance issues: the java.util.BigInteger was programmed in JNI in earlier versions of the JDK. Today the JIT compiler produces acceptable code, so java.util.BigInteger does not use JNI code anymore - it is Pure Java. It is good enough to produce RSA digital signatures. -
Malloc()/free() performance in JNI C code 9-10x slower than C application
I posted this as a bug report, but thought it might be worth also seeking advice here.
I'm working on a product under Windows which is integrated using JNI to a 3rd party file format conversion C++ library which uses a lot of new/delete (malloc/free) calls. I found the performance to be dramatically slower when running under Java compared to a standalone executable.
After many steps, I eventually wrote a small C program which simply loops over many malloc/free calls for 16 bytes, and took an average time. I found when I run this C program in a cmd.exe window, it runs about 9-10 times faster than if it is executed via JNI (Java calls the routine just once).
I can only guess that the JVM is somehow over-riding malloc/free, but this is an extremely high performance penalty. I found under Java 6, the JNI code runs about 5x slower, which is an improvement, but still very slow.
Does anyone know if this behaviour is expected?
Cheers,
David
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I would have expected that the performance of malloc/free to be the same regardless of whether my native code is executing inside a JNI call, or as an ordinary program.
ACTUAL -
For Java 1.5.0_0-b03, some example timings in milliseconds (Pentium 4 1.8GHz):
0.004461
0.004494
0.004498
For Java 1.6.0-b105:
0.002367
0.002375
0.002366
When run as a process in a cmd.exe window:
0.000487
0.000497
0.000489
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Java code is just:
package com.nuix;
public class Test
private static native void doit();
public static void main(String[] args)
System.loadLibrary("test.dll");
doit();
}C code is as follows (#define JAVA when building test.dll).
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define COUNT 10000000
void doit()
DWORD t1 = GetTickCount();
for (int i = 0; i < COUNT; i++)
int *data = (int *)malloc(16);
data[0] = i;
free(data);
DWORD t2 = GetTickCount();
fprintf(stderr, "Malloc average time msec == %f\r\n", (double)(t2 - t1) / (double)(COUNT));
fflush(stderr);
#ifdef JAVA
#include <jni.h>
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT void JNICALL Java_com_nuix_Test_doit
(JNIEnv *env, jclass klass)
doit();
#ifdef __cplusplus
#endif
#endif
int main()
doit();
}The speed of which Java executes is highly dependent on what device you are running it on. For example we have noted that a number of our J2ME programs run very slowly on many Motorola implementations, however that exact same code runs increadible fast on Nokia phones.
You can't really make a broad sweeping statment like C# is faster than Java and vice versa. All you can really say is that on this specific device with this version of the VM running this application, C# is faster. Changing any of those parameters may result in a significantly different result.
Really it comes down to what does the device manufacturer really want to support. Nokia has put a lot of effort into their J2ME platforms. As a result, their VM implementations are getting better (and faster) with every release. Other manufacturers are not making this same kind of commitment and as a result, their handsets are less optimal for running J2ME applications.
So I guess the short answer is. Your question cannot be answered until you identify the version of the device, and the specific version of the VM you ran your test on.
By the way, if you ran it on an Emulator, all bets are off. Performance on the Emulator and performance are usually different and can be significantly different.
Cheers,
Angus -
Performance of System.loadLibrary in JNI
I am working on a solution that uses System.loadLibrary to load a dll during the initialisation of an Applet. This is to enable the Applet to use Windows mutex objects. The Applet is downloaded (if not cached) from a remove server as part of an HTML page. The dll is located on the local machine in a directory at the front of the PATH environment variable. The dll is only 40 KB however the System.loadLibrary call takes 4525ms to load the dll. This consitutes 99% of the Applet initialisation time.
Does any one have any suggestions how I can improve the speed of loading / using this dll?
Thanks,
JamesThe dll is only 40 KB however the System.loadLibrary call takes 4525ms to load the dll. Perhaps this is because:
This is to enable the Applet to use Windows mutex objects.and you're doing something wrong. -
Hello I am using a Native code that is working perfect on Windows .
I have used DllMain calls to initialize my threads .
I attach my lower stack threads to the JNI by using these methods.
Well I want to know what is way to put the same functionality on Solaris.As this particular method is specific to Windows Platform only.
BOOL APIENTRY DllMain( HANDLE hModule, // handle to DLL module
DWORD ul_reason_for_call, // reason for calling function
LPVOID lpReserved // reserved
BOOL returnValue = FALSE;
switch (ul_reason_for_call)
case DLL_PROCESS_ATTACH:
// We do not perform any initialization
// within this section. Instead we have
// chosen to use the JNI_OnLoad function
// as the library initialization point.
returnValue = TRUE;
break;
case DLL_THREAD_ATTACH:
// We are to initialize the thread local storage
// variables in this call.
if( BridgeUtility::getInstance() -> threadInitialize() != 0 ) {
returnValue = FALSE;
printf(" Thread initialize failed..\n");
}else {
printf(" Thread initialize succed..\n");
returnValue = TRUE;
break;
case DLL_THREAD_DETACH:
// We are to uninitialize the thread local storage
// variables in this call.
if( BridgeUtility::getInstance() -> threadUninitialize() != 0 )
returnValue = FALSE;
else
returnValue = TRUE;
break;
case DLL_PROCESS_DETACH:
// We do not perform any uninitialization
// within this section. Instead we have
// chosen to use the JNI_OnUnload function
// as the library initialization point.
returnValue = TRUE;
break;If your aim is to load the library and initialize it
that one time, consider using the pthread once routines
to handle library initialization. See, for example,
chapter 5 of Butenhof's "Programming with POSIX
threads". -
App crash when using JNI callbacks
Hi all,
I have a solaris application which crashes when I try to callback the JNI methods from the native code. The description of the problem is below
Written a native library, the library is multithreaded (i.e) I create a thread using pthread_create() in the native code which performs the operation of calling a JAVA method from the native code. The routine of calling the JAVA method works perfectly from elsewhere.
There are two scenarios I've tested it in
1. I created a thread (say X) from the main thread (say Y) and made the y to wait until the X is complete using the pthread_join(). The JAVA callbacks work fine when called from Y but the app crashes if done from X.
2. Did not make the Y to wait until the X is complete, hoping that both will run paralelly and even the the App crashes.
And to be precise the Y is the thread where the native method is called from JAVA.
I have tested for any memory leaks or stack corruption by removing the JAVA callbacks and bulding a executable and using purify, the report doesnot hint any such occurances.
The linker options used for building the shared library is as follows
${GPP} ${INC} -G ${LIB} -mt -g -lCstd -lCrun -lpthread ${OBJS} -o <lib-name>
I wonder if we can create threads in the native code when using JAVA callbacks and even if we can whether it would be appropiate to use the callbacks with in the threads
Looking forward for any help.
Regards,
VamsiGuys... can't any one help me with this problem :(
Maybe you are looking for
-
Transfer iPhone backup to new macbook pro from old macbook pro
I bought a new macbook pro last week, but, I need to transfer my iTunes library (music, apps, podcast, photos, other) from my old macbook pro to my new macbook pro and the iPhone backup, off course, please, I have read entire hours on google but I ca
-
VPN with more than one filter / nested ACL
Dear All, Is there a way to assign more than one ACL to a VPN profile or implement a nested ACL structure? I am trying to avoid modifing a large list of ACLs to insert the same ACE in each ACL bound to different VPN profiles.
-
Problem with displayinh Java Applets
Hi I've recently downloaded the latest version of Java Plug in and I'm expierencing problems that the applet doesn't load instead I'm getting an "X" on the left hand corner, this happens 95% of the time,any help? I appreciate your quick response. Tha
-
Adobe InDesign Licence doesn't work any more
Hi folks. Since Adobe doesn't provide any help I have to turn to you now. It says: Error 150:30 - my licence isn't valid any more. For the record, I have InDesign CS4 and a Mac 10.7.5. Any ideas? Thank you very much!!
-
Why do new events appear at the top of my library?
In older version of iPhoto, when you imported photos, it would make a new event at the bottom of your library where I wanted it to be In the new version, when importing it places new events right at the top of my library, meaning I have to go all the