Профилирование Java-программы с помощью Valgrind

На самом деле, я работаю над проектом с несколькими языками ( Java, C, KornShell). Я должен проверить взаимодействие между Java и C, и я должен знать, какие функции вызываются в C и Java-программе одним и тем же инструментом. Для этого я написал сценарии KornShell и решил использовать Valgrind.

Но у меня проблема с Valgrind, у меня нет никаких следов профилирования Java. Поэтому я попытался создать простой класс Java и запустить его с помощью Valgrind. Но Valgrind не профилирует это.

Это простой класс Java, который я пытался профилировать

public class Test {

    public Test(){}

    public void helloworld(){
        System.out.println("hello world");
    }

    public static void main(String arg[]){
        Test t = new Test();
        t.helloworld();
    }
}

Вот как я запускаю свой класс Test

valgrind --tool=callgrind --trace-children=yes --callgrind-out-file=callgrind.test.out.%p --smc-check=all java Test

Вот вывод консольной valgrind:

== 52568 == Callgrind, профилировщик кэша, генерирующий граф вызовов

==52568== Copyright (C) 2002-2013, и GNU GPL'd, Josef Weidendorfer et al.

== 52568 == Использование Valgrind-3.10.1 и LibVEX; перезапустить с -h для получения информации об авторских правах

== 52568 == Команда: тест Java

== 52568 ==

== 52568 == Для интерактивного управления запустите callgrind_control -h.

Привет, мир

== 52568 ==

== 52568 == События: Ir

== 52568 == Собрано: 119570941

== 52568 ==

== 52568 == Я ссылаюсь на: 119 570 941

В файле callgrind.test.out.% P у меня должна быть трассировка функции helloworld, но у меня ее нет. Вы можете мне помочь? Можно ли даже профилировать Java как C с помощью Valgrind?

0 ответов

Другие вопросы по тегам