2010-08-09 5 views
1

J'écris une application Windows CE, et je veux jouer un son (un fichier wav court) quand quelque chose se passe. Comme ce son sera souvent joué, mon premier instinct a été de charger le fichier wav dans un flux mémoire et de réutiliser ce flux au lieu de lire le fichier à chaque fois.Sur un appareil Windows Mobile, est-il logique de mettre les données en cache "en mémoire"?

Mais il me survenu que ces appareils Windows Mobile ne sont un type de mémoire, qui est utilisé tant pour le stockage de données (= le système de fichiers), ainsi que pour la mémoire de programme; Il y a même un joli curseur dans le panneau de contrôle que vous pouvez utiliser pour déléguer la mémoire à l'exécution du stockage ou du programme. Donc, théoriquement, lire un fichier à partir du système de fichiers (ou une valeur à partir d'une base de données SQL Server CE) devrait prendre (presque) autant de temps que lire cette valeur à partir d'un objet en mémoire, n'est-ce pas?

Cette supposition est-elle correcte (c'est-à-dire que la mise en cache en mémoire au niveau de l'application n'a pas de sens ici) ou ai-je manqué quelque chose? Pour plus de simplicité, supposons que seule la mémoire interne de l'appareil est utilisée (pas de carte mémoire).

Répondre

1

L'hypothèse peut être valide ou non. Où réside-t-il en stockage? Si c'est un stockage persistant (comme un dossier de carte de stockage ou tout ce qui reste quand vous réinitialisez), il est soutenu par Flash, ce qui est beaucoup plus lent que la RAM et il y aura une différence de charge votre application, je ne peux pas dire - seuls les tests vous le diront.

1

Lorsque je souhaite lire un court fichier WAV sur Windows Mobile (par exemple, un son de notification). Je l'ajoute généralement en tant que ressource à mon exécutable. Les ressources AFAIK sont chargées dans la RAM puisqu'elles font partie de l'image exécutable. Vous pouvez ensuite appeler le PlaySound() avec SND_RESOURCE (et probablement avec OU SND_ASYNC pour que l'appel ne se bloque pas pendant la lecture du fichier).

Questions connexes