【发布时间】:2013-02-22 10:01:14
【问题描述】:
目前我们的应用程序正在处理同一目录中大约 1000 多个 XML 文件的大量文件。这些文件都被读取、解析和更新/保存到数据库中。
当我们在 12 核机器上测试我们的应用程序时,整个过程比在 4 核机器上处理它要慢得多。
我们观察到,我们的应用程序产生的线程数上升到 30 到 90 个线程,并且上下文切换正在大量增加。这可能是由大量并行执行引起的,但它们都很重要。
上下文切换是罪魁祸首吗?或文件的并行读/写?还是我们减少并行任务的数量?
【问题讨论】:
-
你能发布一些代码吗?
-
设计?你是如何进行线程间通信的?您是否将整个文件读入某个 XML 容器并将其排入处理池?
标签: multithreading c#-4.0 concurrency