4
我不確定是什麼原因造成的,所以請原諒我,如果我找不到我需要的信息搜索。這裏是一個例子:爲什麼Directory.GetFiles()在後續運行中運行速度更快?
假設我們有一個包含1,000,000個文件的文件夾。運行Directory.GetFiles()將需要幾分鐘的時間。但是,之後再次運行只需幾秒鐘。爲什麼會發生?對象是否被緩存在某處?我如何在原始時間運行它?
我不確定是什麼原因造成的,所以請原諒我,如果我找不到我需要的信息搜索。這裏是一個例子:爲什麼Directory.GetFiles()在後續運行中運行速度更快?
假設我們有一個包含1,000,000個文件的文件夾。運行Directory.GetFiles()將需要幾分鐘的時間。但是,之後再次運行只需幾秒鐘。爲什麼會發生?對象是否被緩存在某處?我如何在原始時間運行它?
硬盤驅動器具有內部高速緩存,有助於加速後續讀取。嘗試讀取完全不同的扇區中的一堆其他目錄信息以清除緩存。
因此,這不是.NET優化,而是HD? – Lunyx
操作系統也可能將其緩存到RAM中。很難確切地說明哪個緩存級別在第二次傳遞中讓你的閱讀變得如此快速。 – Justin
有沒有辦法找出它是哪個?我如何知道哪些目錄位於不同的扇區,以便我可以測試出來? – Lunyx