Comment calculer la vitesse d’accès séquentiel et aléatoire?
(suequential read/write rate)
Comment calculer la vitesse d’accès séquentiel et aléatoire?
(suequential read/write rate)
Impossible à calculer.
Par contre, il est possible de la mesurer.
Cependant, ça demande un contrôle fin de l'accès disque. Sous Windows ou Linux, il faut passer par des accès en lecture (ou en écriture pour les courageux) sur les device physique (/dev/sdx sous Linux).
L'idée, c'est de lancer une série de lecture
* sur un ensemble de secteurs consécutif
* sur un ensemble de secteurs sélectionnés aléatoirement
Et de mesure le temps de chaque lecture ; on peut alors calculer le temps moyen d'accès et l'écart type associé.
Bien évidemment, si c'était simple, ça serait parfait. Il faut aussi prendre en compte le fait que la tâche va probablement être préemptée par quelqu'un d'autre, donc les mesures de temps seront plus ou moins incorrecte. Pour éviter ça, il faut que le processus s'exécute à un niveau de priorité élevé, voire le plus élevé. Cependant, il ne peut pas tout le temps tourner à ce niveau de priorité (les autres processus seront bloqués).
Donc on va faire des cycles courts de lecture :
* on passe en priorité max
* on fait N lecture (N pas trop grand)
* on repasse en priorité normale
* on rends la main à l'OS (sous Windows : Sleep() ; sous Linux: sched_yield() ou un sleep quelconque) de manière à ce qu'il donne le contrôle à une autre processus
* on recommande M fois, afin d'avoir un bon nombre de mesures (histoire que nos stats soient cohérentes).
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Partager