This seems a bit surprising.  In my experience well-written Java is
generally just about as fast as C++, especially for I/O bound work.  The
exceptions are:

- java startup is still slow.  This shouldn't matter much here because you
are using streaming anyway so you have java startup + C startup.

- java memory use is larger than a perfectly written C++ program and
probably always will be.  Of course, getting that perfectly written C++
program is pretty difficult.

If the program in question is the one you posted earlier, it is very hard to
imagine that java would not saturate the I/O channels.  Can you confirm that
you are literally doing:

    for (node : line.split(" ")) {
      out.collect(node, key);
    }

And finding a serious difference in speed?

On 3/31/08 3:23 PM, "lin" <[EMAIL PROTECTED]> wrote:

> Java seems to be too slow. I rewrote the
> first program in Java and it runs 4 to 5 times slower than the C++ one.

Reply via email to