Nécessaire de mettre manuellement en cache les fichiers statiques dans C # / ASP.NET?

J’ai une classe qui crée une instance de StreamReader dans un fichier xml sur le système de fichiers local. Il est possible que ce même fichier soit demandé plusieurs fois par seconde.

Je me demandais si je devais append manuellement ce fichier à System.Web.Cache et le lire à partir de là, ou si Windows lui-même est assez intelligent pour mettre en cache l’élément lui-même afin qu’il “sache” quand ASP.NET demande ce fichier. deuxième / troisième temps, il n’a pas à faire une opération de recherche / lecture de disque et le tire de son propre cache?

Cet article: http://dotnetperls.com/file-read-benchmarks semble sauvegarder ceci, mais ceci: article: http://msdn.microsoft.com/en-us/library/18c1wd61%28v=VS.100 % 29.aspx (bien qu’il ne soit pas question du sharepoint vue des performances, et peut-être pour d’autres raisons), indique comment append un fichier physique au cache.

Je ne pense pas que la mise en cache du fichier serait tout à fait utile, car elle réside sur le même serveur que la page, même si elle est probablement mise en cache automatiquement par IIS. Au lieu de cela, vous devez mettre en cache la sortie de StreamReader . Stockez le fichier XML après l’avoir lu, puis vous économiserez le temps qu’il faut pour le lire et le traitement que vous faites pour le mettre dans un format utilisable.

Ensuite, vous pouvez l’append manuellement à HttpRuntime.Cache et vous pouvez même définir une dépendance de fichier sur le fichier d’origine, pour expirer la sortie en cache.