2012-03-02 7 views
2

tousperformances IO du fichier sur la carte SD

Lorsque je tente de lire certains fichiers multimédia à partir de la carte SD après la première fois que j'insérer à l'appareil, les performances de lecture est bien pire que la deuxième fois, que quelqu'un a une idée sur ce phénomène, et comment puis-je éviter ce problème, j'ai essayé ouvert et fopen, mais les résultats sont les mêmes, je veux juste lire les performances est la même, peu importe quand j'insère la carte SD, merci

Répondre

1

L'utilisation de O_DIRECT (voir open(2)) lors de l'ouverture du fichier contournera le cache du tampon. Ce n'est souvent pas une bonne idée, mais je m'attendrais à ce qu'il soit plus cohérent d'un bout à l'autre.

Gardez à l'esprit que l'utilisation de O_DIRECT nécessite que la mémoire lue soit SC_PAGESIZE alignée et lue en blocs qui sont des multiples de SC_PAGESIZE.

+0

:(, j'ai essayé ce drapeau, ça peut marcher, mais la performance est encore pire sur appareil Android ..., de toute façon, merci – thisEric

+0

Mais –

+0

Salut, Brian, je ne pourrais pas obtenir votre point, voulez-vous dire que O_DIRECT peut en effet améliorer la performance? Mais j'ai essayé sur l'appareil, il ne peut pas et quel est le problème? – thisEric

1

Êtes-vous dire qu'il est pire pour la première lecture que les lectures suivantes avant de retirer l'appareil? Si c'est le cas, c'est normal - c'est dû à la mise en mémoire tampon. Fondamentalement, le système utilise la RAM du système pour accélérer la vitesse perçue de l'appareil.

Si vous retirez la carte après l'avoir démontée puis remise et remontée, je m'attendrais à ce que la première lecture soit de nouveau plus lente, alors les lectures suivantes sembleront être à nouveau plus rapides.

+0

Salut, Jared, Merci pour votre réponse, exactement comme ce que vous avez dit, je me demande simplement comment améliorer la performance de la première fois, est-il possible d'arrêter de tamponner pour la première fois, et sera-t-il utile? – thisEric

+0

Habituellement, la mise en mémoire tampon est utile et vous devriez laisser le système le faire. La lecture depuis une carte SD est toujours plus lente que la lecture depuis la RAM! –

+0

salut Basile, vous avez raison, le temps tampon est utile, mais je me demande si sans tampon, si la première fois la performance sera meilleure, j'ai essayé le drapeau O_DIRECT, la performance est encore pire pour la première fois, je me suis trompé . – thisEric

Questions connexes