J'ai une région de mémoire enveloppée avec JNI NewDirectByteBuffer
. Je voudrais courir le code libre/libérer dans le nettoyeur du ByteBuffer
. Y at-il un moyen de le faire ou dois-je offrir une méthode gratuite personnalisée que l'utilisateur devra appeler avec le ByteBuffer
?Libérer la mémoire enveloppée avec NewDirectByteBuffer
Modifier
Pour clarifier les choses, je me suis réparti la mémoire et appelé moi-même NewDirectByteBuffer
. Je voudrais savoir comment je devrais coordonner le nettoyage avec le nettoyeur.
Dans DirectByteBuffer de Java 8, vous pouvez appeler la méthode Cleaner.clean() bien qu'il ne s'agisse pas d'une API publique, utilisez-la sachant qu'elle n'est pas portable. –
@PeterLawrey Et cela appellera gratuitement() toujours? Que faire si j'ai besoin d'une autre fonction de nettoyage que free()? –
Il fera tout ce qui est approprié pour libérer la mémoire. Vous n'avez aucune preuve que cela implique d'appeler 'free()'. – EJP