目前,我们的应用程序正在处理大量关于同一目录中超过1000个XML文件的文件。这些文件全部被读取,解析并更新/保存到数据库。C#使用更少的CPU对进程进行多线程处理速度要快得多CPU
当我们在12核心机器上测试我们的应用程序时,整个过程比在4核心机器上处理它要慢得多。
我们观察到的是,由我们的应用程序产生的线程数量达到30到90个线程的范围,并且上下文切换开始大量增加。这可能是由许多并行执行引起的,但所有这些都很重要。
上下文切换是罪魁祸首吗?或并行读取/写入文件?或者我们是否减少了并行任务的数量?
你能发表一些代码吗? – 2013-02-22 10:04:36
设计?你如何做你的线程间通信?你是否将整个文件读入某个XML容器并将其排入处理池? – 2013-02-22 13:30:36