Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/03/2016, 01:08
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Optimizar lectura de un archivo de texto

Buenas,

Si, pero esos son benchmarks de algoritmos, no de operaciones I/O.
Esta claro que para algoritmos java nunca podra ser mas rapido que el codigo nativo, aunque en algunos casos la magia del compidador JIT permita acercarse o igualar la velocidad (si te fijas, hay algunos de los benchmarks que has puesto en los que Java es incluso mas rapido que GCC).

En las operationes I/O los bloqueos se producen normalmente a bajo nivel y dependen de la implementacion nativa que proporciona el sistema operativo y del canal sobre el que operan.
Por ejemplo, aqui tienes la implementacion de Java NIO para Windows en la JVM hotspot:
http://hg.openjdk.java.net/nio/nio/h...os_windows.cpp
Como veras al final todo se reduce a la utilizacion de la funcion ReadFile de la WinAPI: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
(Hay que notar que al tratarse de codigo nativo incluido en la JVM no existe la sobrecarga que se produciria si usamos interfaces nativas -JNI-, por ejemplo)

Algo parecido sucede si nos conectamos a una base de datos o a un recurso remoto. Lo que nos bloquea no es el lenguaje utilizado, sino las interfaces de comunicacion sobre las que nos apoyamos.

Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 30/03/2016 a las 01:13