Bonsoir,
Voilà, actuellement je suis confronté à un soucis de limitation mémoire dans une application JAVA, utilisant pas mal de code C++ via des appels JNI.
Le code C++, complié en .dll, charge des fichiers de gros volume, ce qui bien sur alloue un certain paquet de mémoire.
Du fait de l'OS, nous savons que le processus ne peut dépasser les 2go de mémoire. Mais je peine à trouver la moindre info sur comment et où la mémoire que le C++ requier est allouée ?
Comme j'arrive aux limites de la mémoire, je cherche à savoir si un p'ti coup de Garbage collector libererais de la mémoire pour le C++ par exemple.
Autre possibilité : il semblerait que j'ai un crash lorsque j'alloue une zone mémoire d'une certaine taille. normal si cette zone contigüe en mémoire n'existe pas, mais comment en être sur ? (en gros la question est plutot : comment l'opérateur new décide si oui ou non il y a succes lors de l'allocation ? est ce que toutes les zones mémoire dispo sont testées ? juste une ? est-ce que l'utilisation du code dans le JNI change quelque chose ?)
Merci de tous les tuyaux que vous pourrez me donner.
Ange_blond.
Partager