Dot-Net

File.Exists 是一項昂貴的操作嗎?

  • November 10, 2009

Re: <http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx>

有誰知道這是否是一個特別緩慢或鎖定的操作,可能會影響大型環境中的伺服器性能?

鎖號 慢,取決於您將其與什麼進行比較。就 I/O 而言,它相當便宜,但與其他操作相比,I/O 總體上通常很慢。所以,如果你必須使用它,它不會傷害太嚴重。但是,我會盡量不要呼叫它超過真正必要的次數!:-)

在計算中,實際上不存在“昂貴的操作”之類的東西,除非你考慮到它與什麼相關的昂貴。

例如,在現實世界中,2.000.000 美元購買一個物品會很貴嗎?如果是巴哈馬的價格呢?那會貴嗎?一盒牛奶怎麼樣?那很貴嗎?

您需要考慮的事情File.Exists是,就您打算執行的整體操作而言,是否成本高昂,以及您是否真的有任何替代方案。

如果您沒有任何替代品,它是否昂貴是否重要?

例如,如果您執行 1 檢查文件是否存在,然後如果存在,則將其載入並花一個小時處理它,那麼我認為它不會被認為是昂貴的。

但是,如果您在一個循環中呼叫它 10 次,以確定文件是否存在,然後如果存在,只需增加一個數字,那麼它可能是您在那裡執行的最昂貴的單個操作。

您可以確定的唯一方法是實際測量該方法呼叫所花費的時間,與您在同一操作中的其他時間相比。

引用自:https://stackoverflow.com/questions/1707569