我有一個像這樣設置的程序。它是一個.Net Framework 4控制檯應用程序。 該程序用於從每個服務器上的每個日誌文件(前一週)收集sc-bytes和cs-bytes。該程序已完成,但需要很長時間才能運行。線程是否會提高性能?
foreach (string server in servers)
{
foreach (string website in Directory.GetDirectories(server))
{
foreach (string file in Directory.GetFiles(website))
{
我只是想知道是否可以使用線程或PLINQ來加速進程? 如果這可以提高性能,我不確定實現它的最佳方式,因爲擁有這麼多線程顯然不會提高性能,因此爲每個日誌文件(甚至每個網站)都設置一個新線程似乎不合邏輯。
如果您需要查看更多代碼,請詢問,但該程序基本上讀取在過去七天內創建的每個文件的每一行,添加字節數,然後使用目錄條目獲取網站名稱(從ID),然後將每個網站的名稱和總字節數輸出到一個文本文件中(最終將成爲數據庫)。 我不需要任何實際的代碼,只是建議最好的方法(如果可能)來提高性能。
謝謝。
一個好主意可能是投資高端SSD。這肯定會改善這種情況,遠遠超過多線程處理你的應用程序 – Lakis
你的代碼沒有任何意義。你如何從網站獲取文件? –
對不起,也許我應該提供更多的代碼。服務器陣列中的每臺服務器看起來像... servers.Add(@「\\ 1.1.1.1 \ e $ \ logfiles」); ...他們都直接指向一個日誌文件夾,然後我使用Directory.GetFiles。 –