2014-01-29 15 views
0

想知道爲什麼腳本運行速度比以前慢得多。 該腳本啓動順序Matlab仿真,並將每個仿真的輸出保存到計算機#1目錄中的文件。腳本在計算機#2,3和4上運行,計算機#1的C:驅動器安裝爲驅動器K:,計算機在模擬過程中讀寫K:驅動器文件。在開始每個模擬之前,腳本會保存模擬輸出文件的「佔位符」版本,一旦模擬完成後,該模擬的輸出文件將被仿真結果覆蓋。輸出文件名對於該模擬是唯一的。該腳本在開始模擬之前檢查輸出文件;如果找到該文件,則轉到下一個模擬。目的是將不同計算機之間的許多模擬分開。計算機1上的目錄中有許多文件(〜4000,6GB),計算機1是舊的Windows XP計算機。計算機#2-4也是Windows機器,並且已有2+年曆史。當結果保存到一個目錄時,爲什麼模擬速度慢?

該方案用於正常工作,每分鐘可節省約3個文件。現在每個文件需要大約15分鐘。 什麼可能是經濟放緩的主要原因?可能是目錄中的文件數量或訪問計算機#1的計算機數量?如果這不太可能,我想知道,所以我可以重定向我的故障排除。

+0

那麼,這是Windows,所以也許磁盤碎片?但是有很多變數,而且還不清楚放緩的地方。你的文件有多大?計算機#1剩餘多少可用空間?另一臺計算機執行計算的速度是否一樣快?惡意軟件,病毒掃描程序,Windows Update正在運行? – horchler

+0

難道是有很多名稱衝突 - 你如何創建文件名? – bdecaf

+0

文件名稱對每個模擬都是唯一的。我改變了幾個參數,文件名是基於參數的唯一組合。 – KAE

回答

1

單個目錄中的項目數絕對會導致性能下降。我讀過它取決於操作系統,文件系統,月相,本地/遠程驅動器......也許是月相。

我個人的經驗法則是,每個目錄性能約5,000個項目開始降級,並且在大約10,000個性能已經下降到足以使您無論做什麼都無法正常工作。

+0

目錄中有太多的文件,Windows不會告訴我有多少文件,但我猜測它已損壞了5000個文件。如果我使用較少數量的文件創建多個子目錄,是否會讓Windows更快樂? – KAE

+0

是的。問題是單個目錄中的文件數量,因此子目錄通常是答案。 – Pursuit

+0

即使我將大部分文件放入子目錄中,執行時間仍然很慢。 – KAE

1

事實證明,問題在於各種計算機插入的舊網絡交換機。當我們嘗試更新的開關時,劇本像閃電一樣奔跑。

然而,每個人的建議(減少#個文件的子目錄;碎片化的計算機#1原來是非常分散)非常有幫助,並且很高興有其他人關注此問題,非常感謝。