我目前正在研究解析大型XML文件的應用程序。並行化批處理應用程序
對於每個文件,都會有不同的進程,但所有進程都將被解析爲一個對象模型。
目前,從每個XML文件解析的對象將進入單個集合。
該集合也用於解析過程中,例如,如果一個類似的對象已經存在,它會修改對象的屬性,比如添加count。
看這個應用程序運行時的CPU圖形,很明顯它只使用了CPU的一部分(100%一次一個核心),所以我假設並行運行它將有助於縮短運行時間。
我是新來的並行編程,所以任何幫助表示讚賞。
我目前正在研究解析大型XML文件的應用程序。並行化批處理應用程序
對於每個文件,都會有不同的進程,但所有進程都將被解析爲一個對象模型。
目前,從每個XML文件解析的對象將進入單個集合。
該集合也用於解析過程中,例如,如果一個類似的對象已經存在,它會修改對象的屬性,比如添加count。
看這個應用程序運行時的CPU圖形,很明顯它只使用了CPU的一部分(100%一次一個核心),所以我假設並行運行它將有助於縮短運行時間。
我是新來的並行編程,所以任何幫助表示讚賞。
我建議你以下技術:構建等待處理的對象的隊列,並從多個線程出列,其中:
對隊列的訪問需要同步,因爲您將從多個線程入隊和出隊對象。
困難在於找到N使得所有CPU核心同時工作。
我建議你看看使用線程而不是並行編程。
當你說這些XML文件將被解析爲單個對象模型時,是否意味着它們將被加載到內存中?如果是的話,那麼接下來要用這個對象模型做什麼?如果不對其執行某些操作/轉換並將其保存到其他地方,將內容加載到內存中很少有用。 – 2009-07-20 18:06:34
@darin分析後會有額外的進程。但這不是這個問題的背景。 – 2009-07-20 18:08:28