memory-mapped-files

    12熱度

    4回答

    我有一個項目,它需要訪問ASP.NET中的大量專有數據。這是通過在共享內存中加載數據在Linux/PHP上完成的。我想知道是否嘗試使用內存映射文件將是要走的路,或者如果有更好的.NET支持更好的方法。我正在考慮使用數據緩存,但不確定緩存中保存的所有數據大小的缺陷。

    1熱度

    2回答

    我意識到.NET 4.0在Beta中,但我希望有人有這方面的解決方案。我試圖創建一個從DLL內存映射文件: FileStream file = File.OpenRead("C:\mydll.dll"); using (MemoryMappedFile mappedFile = MemoryMappedFile.CreateFromFile(file, "PEIMAGE", 1024

    40熱度

    3回答

    我有一個應用程序通過網絡接收數據塊,並將這些數據寫入磁盤。 一旦收到所有塊,它們可以被解碼/重組到他們實際表示的單個文件中。 我想知道是否使用內存映射文件是有用的 - 第一個用於將單個塊寫入磁盤,第二個用於解碼全部文件的單個文件。 我自己的感覺是,它可能只對第二種情況有用,任何人都有這方面的想法? 編輯: 這是一個C#應用程序,我只計劃一個x64版本。 (因此遇到'最大的可疑空間'問題應該是不相關

    23熱度

    6回答

    什麼限制了內存映射文件的大小?我知道它不能大於未分配地址空間的最大連續塊,並且應該有足夠的可用磁盤空間。但是還有其他限制嗎?

    1熱度

    1回答

    在Windows中,可以通過CreateFile()打開設備和卷。我之前已經成功地將這個設備用於ReadFile(),但現在我想切換到內存映射。在下面的代碼中,我收到INVALID_HANDLE_VALUE的值爲b,並且c設置爲87,ERROR_INVALID_PARAMETER。 HANDLE a = ::CreateFileA("\\\\.\\h:", GENERIC_READ, FILE_S

    1熱度

    2回答

    我有一個自定義文件類型,在帶有標題的部分中實現,顯示文件中每個部分的偏移量和長度。現在,無論何時我想與文件進行交互,我都必須先加載並解析整個事物,否則只選擇我需要的部分並加載它們。 我想要做的是實現混合的方法,其中每個部分按需加載。 似乎這樣做有很多潛在的缺點,在離開文件系統句柄時打開的時間比我想要的要長,並且會產生額外的代碼複雜度。 這種事情有沒有任何標準模式?看來,我的選擇是: 就加載整個文件

    1熱度

    1回答

    在可滾動框中顯示大型內存映射文件時,讓視圖代表整個文件還是僅顯示當前顯示的文件區域更合適? 更廣泛地說,在什麼級別的抽象是用.Net的內存映射文件進行分頁?內存中保存的頁面大小/數量與MemoryMappedViewAccessors相關,還是獨立於這些對象?

    5熱度

    2回答

    的內容提供商消費的客戶端,我可以做這樣的事情,才能得到正確的InputStream中讀取圖片: InputStream is = getContentResolver().openInputStream(pictureUri); 這是一個很好的API,並會在服務器端,實際內容提供商導致調用: public ParcelFileDescriptor openFile(Uri uri, Strin

    3熱度

    2回答

    我正在對正在使用的庫進行一些更改。爲了減少內存使用量,磁帶庫將其臨時數據寫入磁盤,而不是將其保存在內存中。但是,對於我的使用場景,將其保存在內存中效率更高。它也有一些併發問題,因爲它的臨時文件具有不變的名稱,因此不能在不同的線程中同時運行(因爲線程會損壞對方的數據)。 因此,我需要更改庫,以便它將所有數據保存在內存中。我最初並沒有編寫這個庫,因此我對編寫代碼做出了很大的改變並不是很舒服。因此,我希

    2熱度

    2回答

    我感興趣的是人們的想法,比較存儲數據在傳統的基於SQL的數據庫中,或者使用諸如新的.Net 4.0運行庫中的數據等Memory-Mapped File。有問題的數據將是簡單結構的數組。 明顯的優點和缺點: SQL數據庫的優點 即席查詢支持 SQL管理工具 架構更改(添加更多的列和設置默認值) 內存映射的優點 更輕的開銷? (這是我的一個假設) 工藝線程之間可共享 其他? 性能提升值得嗎?