Hacker News new | past | comments | ask | show | jobs | submit login

The warning shots across the bow where heard with this statement from the devs:

"Don't replace platform/native threads with virtual ones, replace tasks (without further explanation) instead"?!

Combine that with the fact that they chose to implement the scheduler in Java instead of C(++) and you're set for performance problems.

Remember that NIO took from 1.5 to 1.7 to be usable/performant and that was native!

Edit: Finally figured out why: https://news.ycombinator.com/item?id=39010648




> they chose to implement the scheduler in Java instead of C(++) and you're set for performance problems

The JDK has historically used some native implementations in its stdlib (zip, imageio and others), back when the runtime wasn't as fast as it is today. But today's runtime would often be faster in Java than those native implementations.


> Combine that with the fact that they chose to implement the scheduler in Java instead of C(++) and you're set for performance problems.

Ah yes, the argument from the 1990s. It would make sense to understand where the JVM and its compiler are these days before making incorrect statements about performance.

From your link:

> Blocking network TCP IO needs a sychronized block to work

This is utterly false.


So how do you implement a TCP socket?

I have always had to do synchronized(something) { socketInputStream.read(); }

And the dude himself says that reading from a socket is a problem if you listen to the interview.


Something tells me you don't know much about programming in Java. Just look up any tutorial showing how to use NIO (blocking and non-blocking).

Synchronized in this context is pretty nonsensical.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: