我有一個從光盤播放視頻文件的應用程序。當我第一次播放這些文件時,文件讀取有時會滯後。但是,第二次播放時沒有任何延遲,我懷疑這是因爲該文件在第一次播放時被放入Windows文件緩存中。
我的應用程序的要求是它應該能夠隨時播放任何視頻(同一個視頻幾乎從不播放兩次,因此無需緩存),這使得目前的問題非常關鍵。
爲了調試這個問題,我需要禁用windows xp文件緩存。
問題
有沒有一種方法來禁用Windows XP文件緩存?
編輯/更多信息
進出口使用的ffmpeg,並有實際的文件沒有訪問讀取調用。即使先前播放過其他幾個文件(預熱),也會出現此問題。
你確定它是winxp文件緩存嗎?也許你可以嘗試使用ProcMon或FileMon(sys內部實用程序的確切名稱來監視文件訪問),以確定IO的實際操作是什麼?另外,你的應用程序如何播放這些文件?如果它正在使用CreateFile/ReadFile/WriteFile等文件IO等,那麼我懷疑操作系統正在做緩存。 – obelix 2010-11-09 12:37:33
我不知道有任何其他緩存可以解釋這種行爲。 – ronag 2010-11-09 13:17:15
藉助Microsoft Detours,您可以訪問實際的文件公開呼叫。它不適合生產工作,但對於這種調試,這是一個快速解決方案。 – MSalters 2010-11-09 13:42:04