java - DirectBuffer的内存由操作系统分配,回收的时候呢?
大家讲道理
大家讲道理 2017-04-18 09:56:21
0
2
280
ByteBuffer writeBuffer = ByteBuffer.allocateDirect(bytes.length);
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
小葫芦

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

洪涛
  1. 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

  2. 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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal