0
我在我的腦海中掙扎,因爲將來自DLL的大數據作爲ref byte
複製到文件的最佳方式是什麼。
因爲它是一個視頻流(或數百),那麼我覺得在循環中使用Marhal.Copy
/WriteByte
並不舒服,等等,但更直接。
我很喜歡那個ref byte
,不幸的是並沒有真正做這件事。
無論如何,我在想P/Invoke WriteFile
,但它得到IntPtr
哪裏最接近我可以從ref byte
得到當然是byte*
(使用fixed
)。
現在,我將有幾百這種流,每個可以達到〜2Mbps。
所以在底線 - 我正在尋找一種有效的方式將ref byte
塊複製到一個文件(當然有給定的數組大小)。複製大'ref字節'塊到文件
你能不能用'System.IO.Stream'? – Aron
這是過早優化的糟糕情況。除非機器具有大量的RAM,否則這些視頻流將快速飽和文件系統緩存。之後它只能像磁盤寫入一樣快。從Marshal.Copy()開銷根本就沒有關係。 –
@HansPassant,我將這個Windows服務作爲Windows Server 2008計算機的目標,所以我希望磁盤速度在我的CPU之前成爲我的限制。複製每個緩衝區到託管代碼,然後從它那裏沖洗文件聽起來很可怕,它真的有這麼小的影響? 順便說一句,我很高興知道什麼是-1是 – RoeeK