Общее время метода в Java VisualVM

[Ответ на мой собственный вопрос]

лучшие введения, которые я нашел до сих пор, являются главой 10, "Статическое Метапрограммирование в C++" от Порождающее Программирование, Методы, Инструменты и Приложения Krzysztof Czarnecki и Ulrich W. Eisenecker, ISBN-13: 9780201309775; и глава 17, "Метапрограммы" Шаблоны C++: полное руководство David Vandevoorder и Nicolai M. Josuttis, ISBN-13: 9780201734843.

alt textalt textalt textalt text

у Todd Veldhuizen есть превосходное учебное руководство здесь .

А хороший ресурс для программирования на C++ в целом современный Дизайн C++ Andrei Alexandrescu, ISBN-13: 9780201704310. Эта книга смешивает немного метапрограммирования с другими шаблонными методами. Для метапрограммирования в частности, посмотрите разделы 2.1 "Утверждения Времени компиляции", 2.4 "Отображающихся Интегральных Константы к Типам", 2.6 "Выбора типа", 2,7 "Обратимости обнаружения и Наследование во время компиляции", 2.9" NullType и EmptyType" и 2.10 "Черты Типа".

лучший промежуточный/усовершенствованный ресурс, который я нашел, Шаблонное Метапрограммирование C++ David Abrahams и Aleksey Gurtovoy, ISBN-13: 9780321227256

, Если Вы предпочли бы всего одну книгу, доберитесь Шаблоны C++: полное руководство , так как это - также категорическая ссылка для шаблонов в целом.

54
задан kpozin 11 December 2009 в 16:22
поделиться

4 ответа

Просто сделайте снимок результатов профилирования. Здесь вы увидите время настенных часов и собственное время.

7
ответ дан 7 November 2019 в 08:08
поделиться

you could use a

 long startTime = System.currentTimeMillis();

at the beggining

and

 long endTime = System.currentTimeMillis();

and finally to get the result

 long result = endTime - startTime; //Note, part might be backwards, I don't
                                    //Remember
-3
ответ дан 7 November 2019 в 08:08
поделиться

Есть простой способ получить общее время процедуры в процентах от стены- время выполнения часов (а не миллисекунды). Просто используйте ctrl-break, чтобы получить кучу стекшотов, пока вы этого ждете. Доля из них, содержащих рутину, - это процент времени, который она занимает. Точность зависит от того, сколько выстрелов вы сделаете. Если вы просто ищете причину проблем, вам не нужно точное измерение времени. Вот ' краткое объяснение того, как это работает.

1
ответ дан 7 November 2019 в 08:08
поделиться

JavaAssist - это библиотека классов для управления вашим байтовым кодом Java, не касаясь источника. Возьмем пример измерения время, необходимое для выполнения метода.

public class Subject {
    /**
     * Timetaken for start & end of the method
     * 
     * @throws InterruptedException
     */
    public void method2() throws InterruptedException {
        // Some business logic :)
        Thread.sleep(2000);
    }
}

Чтобы измерить время, затраченное на выполнение subject.method2 () , вы можете улучшить Subject.methods () , добавив начало и конец кода метода, как показано.

public class JavaAssist {
    public static void main(String[] args) {
        timeTaken();
    }

    public static void timeTaken() {
        try {
            ClassPool p = ClassPool.getDefault();
            CtClass cc = p.get("Subject");
            CtMethod meth2 = cc.getDeclaredMethod("method2");
            meth2.insertBefore("System.out.println(\" Start : \"+new java.util.Date());");
            meth2.insertAfter("System.out.println(\" End : \"+new java.util.Date());");
            // cc.writeFile(".");
            Class c = cc.toClass();
            Subject s = (Subject) c.newInstance();
            s.method2();
            cc.detach();
        } catch (Exception e) {
            // suppressed
        }
    }
}

Вывод: Начало: среда, 26 мая, 17:24:18 EDT 2010 Конец: среда, 26 мая, 17:24:20 EDT 2010

Ссылка http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial.html#read

http://www.csg.is.titech.ac.jp/ ~ chiba / javassist / html /

Источник Сообщение от: http://www.senthilb.com/2010/05/javaassist-byte-code-enhancement.html

-1
ответ дан 7 November 2019 в 08:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: