Archive for Ноябрь 2007

Strix. Переезд на наш домен.

Ноябрь 19, 2007

Наш проект под кодовым названием strix переезжает на свой основной домен strix.by.

Из нововведений следует отметить новую карту и постоянно изменяющийся дизайн. Уже практически добавлена функциональность поиска улиц и домов.

Идёт активная разработка. У нас много идей и энтузиазма. Так что, ждите новых новостей.

Реклама

Java. Как измерить время работы метода.

Ноябрь 14, 2007

На днях меня мой teamlead столкнул с этой задачей. Каково самое простое решение? Очень просто…. Берем исходный код и дописываем всё необходимое для измерения. Например, если был такой код


public class C {

public void m() throws Exception {
// do doSomething
}
}

и мы хотим померять производительность метода m(), то можем поменять его например так:


public class C {

public void m() throws Exception {
long timer = -System.currentTimeMillis();
// do doSomething
timer += System.currentTimeMillis();
System.out.println("C.m() " + timer);
}
}

Потом снимаих результаты с консоли и анализируем. Но вот беда, а если мне надо протестировать две версии проекта. Тогда мне придётся компилировать эти две версии с этими изменениями. Не гуд, скажу я вам. Очень муторно и неудобно. Мне то всего надо чуть чуть дописать, а ради этого перекомпиливать кучу всего.

У вот тут нам поможе ASM. Нет, не пугайтесь это не ассемблер, но очень близко. Это framework для анализа и изменения байт кода Java. Так вот с помощью этого «зверька» можно автоматически дописать в байт код всё что вам вздумаеться.

Давайте рассмотрим как с помощью ASM реализовать нашу идею. Всё очень просто.

  1. Качаем сам framework
  2. Качаем мануал по ASM с официального сайта. И, если вы хорошо знаете английский, читаете его и находите в нём ответ на данный вопрос.

Если вы хотите прочитать весь процесс реализации данного подхода к измерению времени работы метода на русском языке, то отпишите мне в коментах. Тогда я не поленюсь и распишу, что да как.