Afin d'être sûr que le package nio apportait réellement du mieux concernant
les gestions de flux, je me suis amusé à lancer ce genre de petit programme
de test :
A ma grande surprise (d'après ce que j'ai pu lire à droite ou à gauche), sur
mon poste, la méthode classique est 4 fois plus rapide que l'utilisation des
nio !!!
D'où ma question : mon code est-il correctement optimisé ? D'autres
personnes ont-elles constaté également un problème de perfs dans les nio ?
Mon test est-il en cause ?
Tient moi informe de tes futurs tests, ca m'interesse : j'utilise NIO actuellement pour ma lib de reseau et j'ai besoin de bonnes performances.
Merci, Vincent
JLM
C'est bon, j'ai trouvé : en fait, les deux parties ne sont pas équivalentes. Il faut déplacer le flush() dans la deuxième partie pour l'insérer dans la boucle. En effet, les données doivent être écrites en fin de chaque boucle si on se réfère code source présent dans le bloc NIO. Actuellement, les données étaient stockées dans le buffer du BufferedWriter plutôt que d'être transmises dans le fichier. Au final, NIO est légèrement plus rapide (environ 1,3 fois sur mon poste). L'honneur est sauf ! ;-)
"Vincent Cantin" a écrit dans le message de news:
Tient moi informe de tes futurs tests, ca m'interesse : j'utilise NIO actuellement pour ma lib de reseau et j'ai besoin de bonnes performances.
Merci, Vincent
C'est bon, j'ai trouvé : en fait, les deux parties ne sont pas équivalentes.
Il faut déplacer le flush() dans la deuxième partie pour l'insérer dans la
boucle. En effet, les données doivent être écrites en fin de chaque boucle
si on se réfère code source présent dans le bloc NIO. Actuellement, les
données étaient stockées dans le buffer du BufferedWriter plutôt que d'être
transmises dans le fichier.
Au final, NIO est légèrement plus rapide (environ 1,3 fois sur mon poste).
L'honneur est sauf ! ;-)
"Vincent Cantin" <Pere.Noel@lutin.fr> a écrit dans le message de news:
30kun6F31giefU1@uni-berlin.de...
Tient moi informe de tes futurs tests, ca m'interesse :
j'utilise NIO actuellement pour ma lib de reseau et j'ai besoin de bonnes
performances.
C'est bon, j'ai trouvé : en fait, les deux parties ne sont pas équivalentes. Il faut déplacer le flush() dans la deuxième partie pour l'insérer dans la boucle. En effet, les données doivent être écrites en fin de chaque boucle si on se réfère code source présent dans le bloc NIO. Actuellement, les données étaient stockées dans le buffer du BufferedWriter plutôt que d'être transmises dans le fichier. Au final, NIO est légèrement plus rapide (environ 1,3 fois sur mon poste). L'honneur est sauf ! ;-)
"Vincent Cantin" a écrit dans le message de news:
Tient moi informe de tes futurs tests, ca m'interesse : j'utilise NIO actuellement pour ma lib de reseau et j'ai besoin de bonnes performances.
Merci, Vincent
Vincent Cantin
Au final, NIO est légèrement plus rapide (environ 1,3 fois sur mon poste). L'honneur est sauf ! ;-)
Ouf ! je respire :-)
Au final, NIO est légèrement plus rapide (environ 1,3 fois sur mon poste).
L'honneur est sauf ! ;-)