Un de mes prog manipule les données d'un fichier bianire.
J'essai les différentes manières pour voir laquelle est la plus rapide.
Le probleme est que lorsque windows à déjà "joué" avec un fichier, l'accès
est beaucoup plus rapide, ce qui fausse mes tests.
J'imagine que cela est du au fait que le fichier est en cache.
Comment empecher windows de mettre le fichier en cache ou comment vider le
cache. Plus généralement, quelles précautions prendre pour qu"un meme
traitement d'un fichier prenne exactement le meme temps deux executions de
suite ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Aurelien Regat-Barrel
> Un de mes prog manipule les données d'un fichier bianire. J'essai les différentes manières pour voir laquelle est la plus rapide. Le probleme est que lorsque windows à déjà "joué" avec un fichier, l'accès est beaucoup plus rapide, ce qui fausse mes tests. J'imagine que cela est du au fait que le fichier est en cache. Comment empecher windows de mettre le fichier en cache ou comment vider le cache. Plus généralement, quelles précautions prendre pour qu"un meme traitement d'un fichier prenne exactement le meme temps deux executions de suite ?
Je suis pas sûr que ce soit un problème de programmation, sauf à modifier ton code de lecture (CreateFile( ..., FILE_FLAG_NO_BUFFERING, ... ) + lecture % 512 ). Une solution simple c'est d'éxécuter 2 fois de suite ton programme, ou de ne chronométrer que la portion intéressante...
-- Aurélien Regat-Barrel
> Un de mes prog manipule les données d'un fichier bianire.
J'essai les différentes manières pour voir laquelle est la plus rapide.
Le probleme est que lorsque windows à déjà "joué" avec un fichier, l'accès
est beaucoup plus rapide, ce qui fausse mes tests.
J'imagine que cela est du au fait que le fichier est en cache.
Comment empecher windows de mettre le fichier en cache ou comment vider le
cache. Plus généralement, quelles précautions prendre pour qu"un meme
traitement d'un fichier prenne exactement le meme temps deux executions de
suite ?
Je suis pas sûr que ce soit un problème de programmation, sauf à
modifier ton code de lecture (CreateFile( ..., FILE_FLAG_NO_BUFFERING,
... ) + lecture % 512 ).
Une solution simple c'est d'éxécuter 2 fois de suite ton programme, ou
de ne chronométrer que la portion intéressante...
> Un de mes prog manipule les données d'un fichier bianire. J'essai les différentes manières pour voir laquelle est la plus rapide. Le probleme est que lorsque windows à déjà "joué" avec un fichier, l'accès est beaucoup plus rapide, ce qui fausse mes tests. J'imagine que cela est du au fait que le fichier est en cache. Comment empecher windows de mettre le fichier en cache ou comment vider le cache. Plus généralement, quelles précautions prendre pour qu"un meme traitement d'un fichier prenne exactement le meme temps deux executions de suite ?
Je suis pas sûr que ce soit un problème de programmation, sauf à modifier ton code de lecture (CreateFile( ..., FILE_FLAG_NO_BUFFERING, ... ) + lecture % 512 ). Une solution simple c'est d'éxécuter 2 fois de suite ton programme, ou de ne chronométrer que la portion intéressante...
-- Aurélien Regat-Barrel
Gilles Vollant
Je pense aussi que la solution est soit de mesurer le temps d'execution uniquement une fois que le fichier est déjà dans le cache, soit d'utiliser FILE_FLAG_NO_BUFFERING
juste un lien au sujet du cache http://www.sysinternals.com/utilities/cacheset.html
je ne suis pas sur que cela soit la réponse, mais c'est toujours interessant... :-)
Je pense aussi que la solution est soit de mesurer le temps d'execution
uniquement une fois que le fichier est déjà dans le cache, soit d'utiliser
FILE_FLAG_NO_BUFFERING
juste un lien au sujet du cache
http://www.sysinternals.com/utilities/cacheset.html
je ne suis pas sur que cela soit la réponse, mais c'est toujours
interessant... :-)
Je pense aussi que la solution est soit de mesurer le temps d'execution uniquement une fois que le fichier est déjà dans le cache, soit d'utiliser FILE_FLAG_NO_BUFFERING
juste un lien au sujet du cache http://www.sysinternals.com/utilities/cacheset.html
je ne suis pas sur que cela soit la réponse, mais c'est toujours interessant... :-)