descargar - ¿Es Java 7 WatchService lento para cualquiera?
java descargar (2)
JDK 7 aún no tiene una implementación nativa de WatchService para MacOS. En lugar de escuchar los eventos del sistema de archivos nativos, utiliza la alternativa sun.nio.fs.PollingWatchService, que atraviesa periódicamente el sistema de archivos y verifica la última marca de tiempo modificada de cada archivo y subdirectorio en el árbol. También he encontrado que es inusualmente lento.
Hay una implementación nativa de WatchService para Mac:
http://code.google.com/p/barbarywatchservice/
No he intentado usarlo yo mismo.
WatchService parece una tecnología excelente, pero ha sido demasiado lenta para ser útil en los sistemas OS X y Linux que he probado. Para colmo de males, tampoco parece que se notifiquen todos los eventos.
Este es el caso tanto con mi propio código como con el ejemplo canónico de Oracle. ( http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java )
Reconozco que el puerto OS X OpenJDK no está seguro de esta funcionalidad (consulte https://wikis.oracle.com/display/OpenJDK/Mac+OS+X+Port+Project+Status )
¿Alguien ha estado usando esto en producción con éxito?
Tengo tiempos de respuesta mucho mejores si cambio
folder.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY);
a
folder.register(watcher, new WatchEvent.Kind[]{StandardWatchEventKinds.ENTRY_MODIFY}, SensitivityWatchEventModifier.HIGH);