Как стать автором
Обновить

Комментарии 9

Bernard Goossens уже несколько лет пилит идею профайлера, который будет выдавать всегда повторимые результаты времени выполнения при одинаковых входных данных и любом количестве перезапусков. Идея в том, чтобы запускать программу на эмуляторе процессора, который аккуратно будет отчитываться в логи. В этом случае убирается воздействие кода операционной системы, который выполняется параллельно.
Пока что только ARM архитектура поддерживается.


Подозреваю, аналогичным решением можно и остальное профайлить гораздло более суровым методом

Ну можно как минимум hardware performance counters заиспользовать, они стабильнее. Количество выполненных инструкций, например, считать. Хотя суперстабильности всё равно не будет. JIT-компилятор в Java, например, легко выдаст неустойчивый результат в зависимости от гонки между потоками. То есть гонка на ранней стадии работы программы повлияет на сгенерированный ассемблерный код, который будет с вами до конца работы программы и может дать вполне ощутимую разницу в производительности.


А тут ещё в IO многое упирается. На рамдиске наверняка будут существенно другие результаты. Поэтому замеры чисто процессорного времени непрактичны.

О, DrJava. Забавная поделка, никогда не слышал о ней.

Т.е. вы взяли три разных программы, по одной от Java/C++/C# и по скорости их загрузки делаете выводы о среде выполнения? Вам не кажеться, что между «экспериментом» и выводом причинно следственных связей нет? Без относительно того, сколько environment java/.net отжирает?
Мне кажется, что связь все-таки есть.

Чтобы запустить свою небольшую программу — приходится загрузить с диска 100Мб => (следовательно) загрузка медленная.

Инструмент приложен — можно пробовать подтвердить или опровергнуть гипотезу. На своих примерах.
Проблема в том, что сейчас редко кто уделяет внимание эффективности программ. Об этом просто не заморачиваются.
НЛО прилетело и опубликовало эту надпись здесь
Например, потому что не знал про него. Симпатичная программка.

jEdit, Java8, Swing

Тест 1
DiskIO: 58.906MB WorkingSetSize: 50.844MB PagefileUsage: 59.063MB
DiskIO: 61.371MB WorkingSetSize: 52.121MB PagefileUsage: 79.465MB
Starting time is 5577.73 ms Повторный запуск: 2917.75 ms

Тест 2
DiskIO: 58.496MB WorkingSetSize: 51.059MB PagefileUsage: 59.078MB
Full run time is 5420.59 ms Повторный запуск: 2581.902 ms

Компактнее и быстрее, чем DrJava
Не Eclipse, а Netbeans или Idea.

Eclipse на swt писан, который весь UI делегирует нативным библиотекам. А вот Netbeans/Idea — это свинговые приложения.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории