Re: Why is Java so slow????
On Mon, 19 Nov 2007 19:28:17 -0000, Java Performance Export =
<java.performance.expert@gmail.com> wrote:
This "C" program takes about 11.5 seconds to print 50,000,000 lines or=
4.3 million lines / sec... output is to /dev/null
Compiled with:
gcc -O4 -o t t.c
=========================
t.c
#include <stdio.h>
int main(int argc, char ** argv)
{
int lim = atoi(argv[1]);
int i;
for (i=1; i <= lim; i++)
printf("this is line %d\n", i);
}
=========================
t.c
This Java class takes about 15.6 seconds to print 5,000,000 lines or
63,700 lines / sec ... 67 times slower!
======================= =
t.java
class t
{
static public void main(String[] argv)
{
int lim = new Integer(argv[0]);
int i;
for (i=0; i < lim; i++)
System.out.println("This is line " + i);
}
}
======================= =
t.java
Try the Java printf so that you are at least comparing something similar=
=
(it should avoid a lot of the String allocations):
<http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintStream.html#printf=
(java.lang.String, =
java.lang.Object...)>
Also, try the -server switch on the JVM. It may well inline a lot of =
those method calls that you are seeing.
Finally, disregard your results until you have considered the following =
=
Java micro-benchmarking advice posted here by Chris Uppal a while back:
<http://groups.google.com/group/comp.lang.java.programmer/browse_frm/thr=
ead/79219945c16fa272/7e96da29cca14efc?lnk=st>
Dan.
-- =
Daniel Dyer
https://watchmaker.dev.java.net - Evolutionary Computation for Java