目前,我們的應用程序正在處理大量關於同一目錄中超過1000個XML文件的文件。這些文件全部被讀取,解析並更新/保存到數據庫。C#使用更少的CPU對進程進行多線程處理速度要快得多CPU
當我們在12核心機器上測試我們的應用程序時,整個過程比在4核心機器上處理它要慢得多。
我們觀察到的是,由我們的應用程序產生的線程數量達到30到90個線程的範圍,並且上下文切換開始大量增加。這可能是由許多並行執行引起的,但所有這些都很重要。
上下文切換是罪魁禍首嗎?或並行讀取/寫入文件?或者我們是否減少了並行任務的數量?
你能發表一些代碼嗎? – 2013-02-22 10:04:36
設計?你如何做你的線程間通信?你是否將整個文件讀入某個XML容器並將其排入處理池? – 2013-02-22 13:30:36