Vous avez peu de chances d'être en mesure de réduire la charge du processeur pour votre tâche, en particulier sur un système Windows. Java sur Linux supporte fichier Asynchronous I / O, cependant, cela peut sérieusement compliquer votre code. Je suppose que vous utilisez Windows, sous forme de fichier E / S prend généralement beaucoup plus de temps sur Windows que sur Linux il fait. J'ai même entendu parler d'améliorations en exécutant Java dans un linux VM sur Windows.
Jetez un oeil à votre Gestionnaire des tâches lorsque le processus est en cours d' exécution et allumez Afficher noyau temps . Le temps CPU passé dans l' espace utilisateur peut généralement être optimisé, mais le temps CPU dans l' espace du noyau peut être généralement réduire de faire des appels plus efficaces.
JSR 203 traite spécifiquement de la nécessité d' une asynchrone, multiplexé, scatter / gather fichier IO:
Le multiplex, installation non bloquante introduite par JSR-51 a résolu une grande partie de ce problème pour les sockets réseau, mais il ne l'a pas fait pour les opérations du système de fichiers.
Jusqu'à ce JSR-203 fait partie de Java, vous pouvez obtenir vrai IO asynchrone avec l' Apache MINA projet sur Linux.
Java NIO (1) vous permet de faire des E / S canal. Ceci est une amélioration des performances, mais vous faites seulement une mémoire tampon de données à la fois, et pas vrai async et IO multiplexé.