|
|
|
June 17th, 2009
11:51 pm - Performance counters В ядре 2.6.31 появится новая подсистема мониторинга "Performance counters". Эта штука позволяет использовать аппаратные возможности процессоров для контроля над некоторыми аспектами исполнения кода (кол-во потреблённых циклов, попаданий в кэш и т.п.), а также для очень точного профилирования кода.
В -rc1 код уже смержен и его можно использовать. На скорую руку с использованием cffi накидал проверочную библиотеку:* (require :perfcounters)
("PERFCOUNTERS")
* (in-package :perfcounters)
#<PACKAGE "PERFCOUNTERS">
* (time+ (time (compile-file "example.lisp")))
Evaluation took:
0.062 seconds of real time
0.060991 seconds of total run time (0.056991 user, 0.004000 system)
[ Run times consist of 0.014 seconds GC time, and 0.047 seconds non-GC time. ]
98.39% CPU
41 forms interpreted
89 lambdas converted
135,805,483 processor cycles
4,037,280 bytes consed
Performance monitor:
76,656,816 CPU cycles consumed
66,294,621 instructions executed
3,622,533 cache hits
114,287 cache misses
6,105,628 branch instructions
316,953 branch missess
55,965,525 bus cycles
NILВот такая клёвая штука, и это только малая часть возможностей! Теперь можно более детально вылизывать код, учитывая такие важные показатели, как отношение удачных/неудачных обращений в кэш и предсказаний условного перехода.
Надо будет спереть дизайн из демонстрационной утилиты linux-2.6/tools/perf, там много интересных игрушек сделано :)
UPD: http://repo.or.cz/w/perfcounters.git Current Music: Enslaved "RUUN" - Essence
|
Comments:
![[User Picture]](http://l-userpic.livejournal.com/27302032/2525656) | | From: | swizard |
| Date: | June 17th, 2009 06:00 pm (UTC) |
|---|
| | | (Link) |
|
![[User Picture]](http://l-userpic.livejournal.com/71590896/12647330) | | From: | 13_49 |
| Date: | June 17th, 2009 06:13 pm (UTC) |
|---|
| | | (Link) |
|
В Линуксе тоже (perfmon2, 3), и давно, но у perfmon концептуальный недостаток есть: использует ptrace. У perfcounters'ов более прямая реализация, более мощные авторы и, по ходу дела, более светлое будущее.
![[User Picture]](http://l-userpic.livejournal.com/91286442/5598013) | | From: | voins |
| Date: | June 17th, 2009 06:15 pm (UTC) |
|---|
| | | (Link) |
|
А ещё это можно встроить в google perfomance tools и строить забавные картинки. Обзательно нужно будет попробовать. Спасибо за информацию.
![[User Picture]](http://l-userpic.livejournal.com/81749707/11027302) | | From: | iakovz |
| Date: | June 17th, 2009 08:24 pm (UTC) |
|---|
| | | (Link) |
|
Intel VTune сто лет в обед ;-)
![[User Picture]](http://l-userpic.livejournal.com/71590896/12647330) | | From: | 13_49 |
| Date: | June 18th, 2009 04:06 am (UTC) |
|---|
| | | (Link) |
|
В Лиспе require чего делать? И чего делать на процессорах, отличных от Intel?
Сами каунтеры в железе появились (в неинтеловском, и в твоём масштабе ;), наверное, лет 300 назад. |
|