Re: Need to recompile a Java Applet as an Executable
On 29-01-2010 06:33, Sanny wrote:
Sanny wrote:
I have a Java Applet which is quite slow.
There are a few functions that are called by the Java Applet. I want
those functions to be run as fast as possible.
You should probably fix your Java code then. It's rare for Java
performance to be so critical that you need to go outside of Java. And
you almost certainly won't get the 10x or 20x speedup you seem to be
hoping for.
There is nothing wrong with the java code. I know some expressions in
C are working 10-20 times faster.
If you expect x10-20, then there is definitely something wrong with
your Java skills and therefore most likely something wrong with
your Java code as well.
Also I can configure Compilation in "C" such that it do not do error
checking at runtime speeding it up further.
That sounds more like Ada than like C.
My program does a lot of array sorting and array search and
comparisions. That is quite faster in C. Also lot of String Operation
is done.
In Java String Operations are 100 times slower than in "C". As copying
a string takes lots of time in Java.
Array work can be faster in C than in Java.
String operations are typical slower in C than in Java.
So you are basing your design on some very bad assumptions.
One Option is to use Native Support.
You can easily make things slower, if you do that wrong. And it won't
necessarily be faster in any case. IMHO JNI is more appropriate for
when you need some specific functionality that's simply not available in
Java, or you need to reuse some code that would be impractical to port
to Java.
No doubt there are some specific, very specialized applications in which
writing some custom native code and calling it via JNI is helpful. But
statistically speaking, it's not likely your program is in that category.
One more reasion to use "C" is to have my code encrypted. Java Code is
available to all so others can easily hack the java code. While
cracking an Activex is I suppose impossible.
You can obfuscate the Java code, but even obfuscated Java byte code
is a lot easier to reverse engineer than native executable.
So it is definitely a valid argument for native code.
But given your level of Java skills, then I don't think
there is any risk for you.
Does an Applet support native language?
Can I create a C++ / C function and ask the applet to call that C
function that is run on Users Computer? And get back the output and
display on the Applet?
Unfortunately, I don't know much about applets. But due to security
concerns, I would expect applets to have much more restricted access to
JNI than regular Java applications.
I have full understanding of these. Only problem is how Browser
accepts the Activex and Applet.
Will a firefox browser run an ActiveX on Non Windows OS?
No.
And not on Windows either.
Arne