我有一個大約7 MB的文件,可以在幾秒鐘內保存到本地共享。但是,將該文件保存到網絡位置需要分鐘。我想知道我能做些什麼來加快速度。以下是我目前的選擇:將文件保存到網絡
- 的數據保存到本地計算機上的臨時文件,然後將臨時文件複製到網絡路徑。我可能會這樣做,因爲這是最簡單和最大的壓力。
- 使用
SetFilePointerEx()
和SetEndOfFile()
。我認爲這可能是有用的基礎上回答這個問題:Creating big file on Windows - 緩衝區寫入。我可以自己緩存寫入數據,並在緩衝區滿時刷新,但是這對於已經由OS完成的緩存是否是多餘的?
#1似乎是最好的選擇,但我想知道如果有人有更好的方法來加快保存到網絡路徑的任何意見?
編輯:網絡位於千兆局域網上,所以速度不應該成爲問題。將文件複製到網絡路徑大約需要1秒。我只是注意到我們在更小的數據塊上調用WriteFile(),所以我們可能應該這麼做,所以優化更高級的代碼以編寫更大的塊可能會有所幫助,但速度差異仍然如此重要,以至於仍然值得提問。
如果複製文件需要一秒鐘,那麼您可能應該使用CopyFile或CopyFileEx函數,或者調用複製命令。 – ChrisW 2009-05-21 18:44:22