mmap

    17熱度

    3回答

    我在Linux 2.6中。我有一個環境,其中2個進程通過消息傳遞模式的簡單實現來模擬(使用共享內存)數據交換。 我有一個客戶端進程(從父,這是服務器分叉),其與寫入一個結構(消息),以創建的存儲器映射區域(後叉): message *m = mmap(NULL, sizeof(message), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1,

    7熱度

    2回答

    我想弄清楚如何將mmap與gzip壓縮文件結合使用。這甚至有可能嗎? import mmap import os import gzip filename = r'C:\temp\data.gz' file = gzip.open(filename, "rb+") size = os.path.getsize(filename) file = mmap.mmap(file.f

    9熱度

    3回答

    我寫的網絡守護進程,在Linux內核2.6,其中有 一個生產者進程和消費者氮處理,不使對數據進行任何改變,而不會產生任何響應回製片人。 只要生產者進程生成一個數據對象,其長度從幾個10字節到幾十K字節不等,就必須將數據對象傳遞給一個可用的使用者進程。 第一次,我考慮使用一個命名/無名PIPE。但是,它們將成爲內存複製開銷。 生產者的用戶空間緩衝--copy - >內核空間的管道緩衝區 內核空間的管

    3熱度

    1回答

    我正在編寫一個程序,它使用mmap分配大量內存,然後訪問隨機內存位置來讀取和寫入內存。 我只是嘗試了下面的代碼: #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> int main() { int fd,len=1024*1024; fd=open("hello",O_READ); ch

    4熱度

    3回答

    我有一個Linux C++程序,內存需求相當大。大部分內存僅被少數類使用,並且訪問的頻率很低。我想將這些類從主內存移動到基於磁盤的存儲,同時儘可能少地改變現有的代碼。 想法是覆蓋這些對象的new運算符,並將它們分配到mmap()的內存區域。這樣,我的代碼修改保持非常有限,程序的其餘部分可以在不知道任何更改的情況下愉快地訪問這些對象,並且內核將確保我需要的對象在內存中,而其他對象在磁盤上。我知道這與

    5熱度

    2回答

    我需要分配內存,但不能使用malloc,因爲它不可重入,所以基本上我將使用POSIX mmap函數實現動態內存分配。是否可以使用mmap?

    15熱度

    3回答

    假設你有一個巨大的(40+ GB)特徵值(浮點)矩陣,行是不同的特徵,列是樣本/圖像。 該表是預計算列式。 然後它是完全訪問行和多線程(每個線程加載一整行)幾次。 什麼是處理這個矩陣的最好方法?我特別琢磨5點: 因爲它在一臺x64的PC上運行,我可以一次將內存映射到整個矩陣,但這樣做有道理嗎? 多線程(多線程初始計算呢?)的影響呢? 如何佈局矩陣:行或列主要? 在預計算完成後將矩陣標記爲只讀是否有

    2熱度

    2回答

    我使用每行上寫入的整數mmaping兩個文本文件。 我從驅動器讀取它們,我想對它們進行排序合併。 兩個輸入文件「1piece0」和「1piece1」具有排序整數列表。 輸出文件的大小與兩個文件結合在一起,但不是那麼多整數。 問題:兩個輸入文件有25430000行,而輸出文件應該有50860000行,但它只有17259463行。 這是我現在的代碼。 #include <stdio.h> #incl

    1熱度

    2回答

    我知道這是不可能的,我想了解真正的原因背後OS明智

    0熱度

    1回答

    我正在尋找一個python中的示例來映射1gb文件。有沒有人有我可以使用的例子? 該文件可以是任何隨機文本。我只是想看看,看看有什麼是做這種正確的方法...