1
我有200萬個文件分佈在分爲幾年和幾個月的子文件夾中。 我使用遍歷文件:EnumerateFiles在子文件夾上的內存效率
foreach (string file in Directory.EnumerateFiles(data_path, "*.*", SearchOption.AllDirectories))
,我應該想到的是分區所列舉用嵌套的結構設置:
foreach (string year_folder in Directory.EnumerateDirectories(data_path))
foreach (string month_folder in Directory.EnumerateDirectories(year_folder))
foreach (string file in Directory.EnumerateFiles(month_folder))
會更內存使用效率?
請參閱下面我的評論。
我真的很想聽聽這個結果,如果你發現一個更有效的方式來做這個生病的話,將它添加到我的流利的System.IO包裝 – 2012-04-09 01:23:16
你應該嘗試並找出;你有兩種情況下編寫的代碼,所以只需分析每個代碼的運行情況,你就會知道。即使其他人推理哪一個更好,理論上相當困難。這種差異很可能是如此之小以至於不被重大關注。 – Servy 2012-04-09 01:58:49
我想知道的是,IEnumerable集是否佔用內存,直到循環迭代最後一個元素(證明第二種方法),或者在循環中是否更頻繁地完成垃圾回收(然後這兩種方法相似) – eyaler 2012-04-10 08:46:53