伊莉討論區

標題: 請問XML轉檔時用Thread執行會變慢? [打印本頁]

作者: asdffdsa01    時間: 2012-1-5 09:59 AM     標題: 請問XML轉檔時用Thread執行會變慢?

我的XML五百多k,會有幾千個XML檔需要轉成文字檔格式,
原本是一個一個轉檔,但是須要一段時間才能轉完,
想說用Thread去同時進行轉檔動作,
我開10個Thread,發現開Thread越多速度越慢,
然後改回用一個Thread執行就跟原本一個一個轉檔的速度一樣,
請問各位這是什麼問題阿,
有沒有其他的解決方法可以提升轉檔的效率阿?
感恩!
作者: kwj    時間: 2012-1-5 10:16 AM

回復 1# asdffdsa01

開 Thread 也要看 CPU 資源夠不夠用呀
假設轉檔過程中 CPU 已經被吃完了
那開更多個 Thread 只是讓電腦在概念上是同時處理很多檔案
但轉檔花費的時間並不會因此變快...
我想您應該需要去思考怎麼設計轉檔的演算法,讓轉檔所需要的 resource 變少吧~
作者: asdffdsa01    時間: 2012-1-6 04:28 PM

感謝啦
我找到問題了
原來是轉成文字檔格式時
用了太多回圈
補空格的東西
後來用PadRight速度就快了六七倍
上面所說的還是一個一個檔案跑
但是就還搞不懂用Thread卻變慢
作者: arthurliuliu    時間: 2012-1-6 04:58 PM

回復 3# asdffdsa01

你是用 String 去串還是用 StringBuilder 呢?
用 StringBuilder 效能會更好一些!
作者: asdffdsa01    時間: 2012-1-7 12:03 AM

我是用String勒
因為我寫程式到現在看到的幾乎都是String
我以為StringBuilder比較吃資源說
我會試著用StringBuilder寫寫看
謝啦
作者: newimq    時間: 2012-1-23 01:47 AM

在操作XML文件的方法是用?LINQ to XML,
LINQ to XML with XPath還是傳統的XmlDocument
試著用LINQ to XML也許會快不少喔‥




歡迎光臨 伊莉討論區 (http://www82.eyny.com/) Powered by Discuz!