Tengo un archivo xml que debe leerse muchas veces. Estoy intentando usar Parallel.ForEach para acelerar estos procesos ya que ninguno de los datos que se leen es relevante en cuanto al orden en que se lee. Los datos solo se están utilizando para rellenar objetos. Mi problema es que aunque estoy abriendo el archivo cada vez en el hilo como solo lectura, se queja de que está abierto por otro programa. (No lo tengo abierto en un editor de texto ni nada :))Múltiples subprocesos leyendo desde el mismo archivo
¿Cómo puedo realizar múltiples lecturas desde el mismo archivo?
EDITAR: El archivo es ~ 18 KB bastante pequeño. Se lee de aproximadamente 1,800 veces.
Gracias
Su disco duro solo tiene una cabeza, por lo que solo puede leer una a la vez. ¿Qué mejora en el rendimiento espera de esto? – Daniel
¿Encaja el archivo en la memoria caché de disco? De ser así, las lecturas múltiples serán rápidas; de lo contrario, si el archivo es lo suficientemente pequeño como para caber en la memoria, utilice un archivo mapeado en memoria y lea de allí. De lo contrario, el disco duro perderá mucho tiempo en lugar de realizar lecturas secuenciales, y perderá rendimiento en lugar de ganarlo. – mdma
¿Una cabeza en un disco duro? Estoy bastante seguro de que incluso las unidades de disco único tienen varias cabezas en estos días, así como el almacenamiento en caché, etc. que abordan las ralentizaciones específicas de la cabeza. – GrayWizardx