Pull to refresh

Comments 9

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


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

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


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

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

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

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

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

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 — это свинговые приложения.
Sign up to leave a comment.

Articles