Hoy probé hacer alguna optimización a la declaración foreach
, que funciona en XDocument
.¿Por qué Parallel.ForEach no está ejecutando varios subprocesos?
Antes de optimización:
foreach (XElement elem in xDoc.Descendants("APSEvent").ToList())
{
//some operations
}
Después de la optimización:
Parallel.ForEach(xDoc.Descendants("APSEvent").ToList(), elem =>
{
//same operations
});
vi que en .NET Parallel.ForEach(...)
abrió sólo un hilo! Como resultado, el intervalo de tiempo de Parallel
fue mayor que el estándar foreach
.
¿Por qué crees que .NET solo abrió 1 hilo? Debido al bloqueo de archivo? Gracias
¿Cuántos núcleos o procesadores lógicos tiene en su máquina? ¿Cuántos elementos hay en la lista? –
No puedo ver ninguna relación del título con la pregunta. –
Christian.K, tengo servidor con procesador Xeon y ram 8GB (Dell PowerEdge R210) con sistema operativo MS Server2008. Creo que no depende de la cantidad de elementos que tengo en el documento XML, creo que la penalización de tiempo se debe al bloqueo de archivos. – zzfima