j'ai la question suivante j'ai RAM 2.5 GB dans mon ordinateur ce que je veux est s'il est possible que dans le cas d'allouer totalement la mémoire à un processus ou par exemple char * buffer=malloc(2.4GB)
, plus de processus (google chrome, jeux microsoft dans l'ordinateur .. etc) peut fonctionner?problèmes d'allocation de mémoire
Répondre
Dans un système d'exploitation tel que Windows, où chaque processus dispose d'un espace d'adressage virtuel de 4 Go (en supposant un système d'exploitation 32 bits), la quantité de RAM que vous possédez n'a pas d'importance. Dans un tel cas, malloc (2,4 Go) échouera sûrement car l'espace d'adresse de l'utilisateur est limité à 2 Go seulement. Même l'allocation de 2 Go probablement échouer car le système doit allouer 2 Go d'espace d'adresse virtuelle continuos pour malloc. Cette mémoire libre continue est presque impossible à cause de la fragmentation.
L'ordinateur fonctionne avec de la mémoire virtuelle, cela n'a aucun rapport avec une taille réelle de RAM.
Probablement pas. Premièrement, votre système d'exploitation aura des protections, c'est-à-dire que malloc finira par devenir un appel système dans votre système d'exploitation, de sorte qu'il échouera au lieu de tout tuer. Deuxièmement, à cause de la mémoire virtuelle, vous pouvez avoir plus de mémoire allouée que de mémoire RAM, de sorte que même si votre système d'exploitation vous laisse allouer 2,5 Go, il sera toujours capable de fonctionner et d'exécuter des processus.
Bien que cela dépende du système d'exploitation et du compilateur, sur Visual C++ sous des fenêtres de 32 bits, vous ne pourrez généralement pas faire plus de 512 Mo de malloc à la fois. Ceci est contrôlé par la constante du préprocesseur _HEAP_MAXREQ. Pour les détails de l'approche que j'ai utilisée pour contourner cette limitation, voir le suivant thread Si vous allez à 64 bits, cela cesse également d'être un problème, même si vous pourriez finir par utiliser beaucoup plus de mémoire virtuelle que vous attendez.
- 1. Problèmes de mémoire CLLocation
- 2. Problèmes de mémoire
- 3. Problèmes de mémoire UIWebView
- 4. Problèmes de mémoire IPhone
- 5. Problèmes de gestion de mémoire
- 6. Problèmes de mémoire avec ActionScript
- 7. Django initial_data.json problèmes de mémoire
- 8. iPhone Problèmes d'allocation de mémoire
- 9. Problèmes d'iPad et de mémoire
- 10. WPF TabControl Problèmes de mémoire
- 11. Problèmes de mémoire sous 4.2?
- 12. problèmes de mémoire concernant App
- 13. glGenTextures problèmes de vitesse et de mémoire
- 14. SQLite + problèmes de gestion de la mémoire
- 15. iPhone - Problèmes de gestion de la mémoire
- 16. NSmutable problèmes de mémoire pour l'iphone
- 17. Problèmes de mémoire avec winforms ImageList
- 18. Comment déboguer des problèmes d'allocation de mémoire?
- 19. Pourquoi ai-je des problèmes de mémoire?
- 20. FindByIdentity dans System.DirectoryServices.AccountManagment Problèmes de mémoire
- 21. Problèmes de mémoire avec le cacao touch
- 22. Image Question pour iPad - Problèmes de mémoire
- 23. Drawrect provoquant des problèmes de mémoire
- 24. NSXMLParser et les problèmes de gestion de la mémoire
- 25. Problèmes de libération de mémoire dans Objective-C
- 26. Dépannage des problèmes de mémoire de SQL Server
- 27. CUDA problèmes mondiaux de désallocation de mémoire dans .NET
- 28. Java App avec beaucoup de problèmes de mémoire
- 29. problèmes de mémoire avec NSMutableDictionary, provoquant des fuites de mémoire NSCFDictionary
- 30. Identification des problèmes de mémoire dans une application ASP.NET
Vous devez verrouiller la mémoire pour empêcher la pagination d'échanger le fichier - http://stackoverflow.com/questions/1039017/can-i-tell-windows-not-to-swap-out-a-particular-processes- Mémoire – StuartLC