@xverizex

Есть ли здесь утечка памяти?

Я никак не могу понять какие есть инструменты по показу утечек памяти для java. вот я накидал такую программу.
import java.io.*;

class Main {
        private native byte[] get_byte();

        public static void main ( String[] args ) {

                Console cons = System.console();
                String pwd;
                while ( true ) {
                        pwd = cons.readLine ( );
                        byte[] test = new Main().get_byte ( );

                        test[0] = '1';
                        pwd = cons.readLine ( );
                        System.out.println ( "Новый цикл." );

                }
        }

        static {
                System.loadLibrary ( "Main" );
        }
}

Она в цикле получает от jni си кода выделенный массив. вот код.
#include <stdlib.h>
#include "Main.h"

JNIEXPORT jbyteArray JNICALL Java_Main_get_1byte ( JNIEnv *env, jobject obj ) {
        jbyteArray test = (*env)->NewByteArray ( env, 255 );

        return test;
}

В принципе я думаю что утечки памяти нет, потому что вызывается специальная фукнция NewByteArray, и она полюбому как то связяна со сборщиком мусора в java. но я это могу только думать, а так ли это на самом деле я не знаю.

Почему мне это надо. Я пробую написать на java для android opengl es приложение. но я знаю что с выводом текста есть проблемы. поэтому я использую freetype2 написанный на си. также у меня есть класс, который работает в моем движке. его надо чуть чуть переделать для android. но функции этого класса должны возвращать память динамическую, поэтому мне надо знать точно, есть ли утечка или нет.
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Предположительно - есть поскольку вы используете NewByteArray но не используете DeleteLocalRef.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
17 мая 2024, в 22:37
20000 руб./за проект
17 мая 2024, в 22:33
1000 руб./за проект
17 мая 2024, в 22:30
5000 руб./за проект