Je crois que c’est un problème général, mais si cela aide, j’utilise la firebase database LucidDB (0.9.4) sur Mac OS X 10.8 avec 16 Go de RAM. Le logiciel de firebase database est écrit principalement en Java avec certaines parties en C ++. Lorsque j’ai augmenté la taille du pool de mémoire tampon à 1 […]
J’essaie de lire la masortingce des entiers d’un fichier en utilisant mmap. Si je le reçois en tant que pointeur de caractère à partir de la fonction mmap, tout se passe bien, mais si j’utilise un pointeur entier, les données sont périmées. Le problème avec l’utilisation du pointeur de caractères est que je dois parsingr […]
Dans mon code de modélisation, j’utilise des fichiers mappés en mémoire vive pour allouer des tableaux de grande taille sur le disque. Cela fonctionne bien, mais je n’ai pas trouvé de moyen de détecter une situation dans laquelle j’alloue un tableau dont la taille est supérieure à celle de l’espace libre sur le disque. Par […]
J’ai le code suivant, … char* seg = mmap(0, …) printf(“seg=%x\n”, seg); … Le programme imprime avec seg=b7ffd000 . Dans gdb (pour la même exécution), lors de l’utilisation de p/x seg , il affiche $2 = 0x0 . Je suis confus ici. N’est-ce pas la même chose? pourquoi les valeurs sont différentes. PS: dans mmap […]
Je commence un petit projet pour un magasin clé-valeur, en C ++. Je me demande comment les stream C ++ std se comparent à mmap en termes d’évolutivité et de performances. Comment l’utilisation de ifstream :: seekg sur un fichier qui ne rentre pas dans la RAM est-elle comparable à l’utilisation de mmap / lseek?
J’ai deux processus P1 et P2. J’ai cette grande ressource en lecture seule, appelée “R”, à laquelle je souhaite que P1 et P2 aient access. R n’est pas simplement un groupe “plat” d’octets; c’est un groupe d’objects C ++ qui se dirigent l’un vers l’autre. Je préférerais que P1 et P2 ne partagent qu’une seule […]
Je rencontre un problème avec GDB et quelques tampons alloués dans l’espace kernel. Les tampons sont alloués par un module de kernel censé allouer des blocs de mémoire contigus, puis mappés en espace utilisateur via un appel mmap (). GDB, cependant, ne semble pas pouvoir accéder à ces blocs à tout moment. Par exemple, après […]
La page de manuel mmap(2) et les résultats de la recherche m’ont donné l’impression que mmap n’est limité qu’aux espaces adresse disponibles du système, moins les espaces adresse réservés au système. Donc, sur armv7l 32 bits, je suppose qu’il se situe autour de 3 Go = (4 Go à 1 Go). Mais il me semblait […]
J’ai un transtypage mmap à un pointeur de caractère char * ptr; ptr = (char *) mmap (0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); C’était mon code précédent. Mais maintenant, je veux utiliser une carte au lieu de char *, car les exigences ont changé. Maintenant, ma carte est déclarée en tant que map […]
J’ai un programme. Je veux qu’il soit capable de mapper une région particulière de la mémoire sur différentes exécutions. J’ai le code source du programme. C / C ++ Je contrôle comment le programme est compilé. gcc Je contrôle comment le programme est lié. gcc Je contrôle le fonctionnement du programme (Linux). Je veux juste […]