Il y a un nettoyeur dans DirectByteBuffer. Lors du recyclage, la méthode clean() de ce nettoyeur est appelée GC utilisera ce nettoyeur pour recycler, bien qu'il ne soit pas recyclé dans le tas Java
.
La mise en œuvre de l'allocation et du recyclage consiste à appeler allocateMemory et freeMemory de Unsafe, qui sont en fait les appels système malloc et free
Si vous devez prendre l'initiative de nettoyer, vous devez utiliser une méthode hack Vous pouvez vous référer à Java. Lorsque tous les flux sont fermés, une erreur sera signalée lors de la suppression de fichiers sur le disque. disque ? Ma réponse
S'il s'agit d'un nettoyage du système, lorsqu'il constate que la mémoire hors tas est insuffisante, il appellera System.gc() pour nettoyer la mémoire hors tas. Vous pouvez ajouter -XX:+DisableExplicitGC pour déborder. -mémoire tas
Il y a un nettoyeur dans DirectByteBuffer. Lors du recyclage, la méthode clean() de ce nettoyeur est appelée GC utilisera ce nettoyeur pour recycler, bien qu'il ne soit pas recyclé dans le tas Java
.La mise en œuvre de l'allocation et du recyclage consiste à appeler allocateMemory et freeMemory de Unsafe, qui sont en fait les appels système malloc et free
Si vous devez prendre l'initiative de nettoyer, vous devez utiliser une méthode
hack
Vous pouvez vous référer à Java. Lorsque tous les flux sont fermés, une erreur sera signalée lors de la suppression de fichiers sur le disque. disque ? Ma réponseS'il s'agit d'un nettoyage du système, lorsqu'il constate que la mémoire hors tas est insuffisante, il appellera
System.gc()
pour nettoyer la mémoire hors tas. Vous pouvez ajouter-XX:+DisableExplicitGC
pour déborder. -mémoire tas