Profiling — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
м (переименовал «WINE/Profiling» в «Profiling»)
Строка 1: Строка 1:
 
 
== Профилирование ==
 
== Профилирование ==
 +
 +
Valgrind хорошо известен как мощное средство поиска ошибок работы с памятью. Но кроме этого, в его составе имеется некоторое количество дополнительных утилит, предназначенных для профилирования программ, анализа потребления памяти и поиска ошибок связанных с синхронизацией в многопоточных программах.
 +
 +
Более подробно читать тут: http://alexott.net/ru/writings/prog-checking/Valgrind.html
  
 
Существуют средства, позволяющие получить подробную и наглядную информацию об узких местах программы.
 
Существуют средства, позволяющие получить подробную и наглядную информацию об узких местах программы.
Строка 28: Строка 31:
 
и указать в программе Settings->Configure путь к RPM/BUILD/glibc-*</pre>
 
и указать в программе Settings->Configure путь к RPM/BUILD/glibc-*</pre>
  
=== На сборочном сервере Etersoft ===
+
== На сборочном сервере Etersoft ==
  
 
Для простоты код запуска wine под valgrind помещён в скрипт ww-valgrind, так что можно запустить просто
 
Для простоты код запуска wine под valgrind помещён в скрипт ww-valgrind, так что можно запустить просто
Строка 34: Строка 37:
 
  $ ww-valgrind notepad
 
  $ ww-valgrind notepad
  
 +
== Запуск с wine приложениями ==
 +
 +
С запуском 1С. Перейти в папку где лежит exe файл для запуска 1с (Например: ~/wine_c/Program Files/1Cv77/BIN)
 +
Выполнить команду:
 +
valgrind --leak-check=yes -v wine 1cv7l.exe
  
 
[[Категория:Отладка]]
 
[[Категория:Отладка]]

Версия 15:24, 25 апреля 2013

Профилирование

Valgrind хорошо известен как мощное средство поиска ошибок работы с памятью. Но кроме этого, в его составе имеется некоторое количество дополнительных утилит, предназначенных для профилирования программ, анализа потребления памяти и поиска ошибок связанных с синхронизацией в многопоточных программах.

Более подробно читать тут: http://alexott.net/ru/writings/prog-checking/Valgrind.html

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

Для того, чтобы получить полноценную информация, нужно выполнить следующие действия:


  • устанавливаем пакет glibc-core-debug (если хотим получить информацию и по функциям glibc)
  • запускаем программу (на примере notepad) командой
$ LD_LIBRARY_PATH=/usr/lib/debug valgrind  --trace-children=yes --tool=callgrind ~/Projects/WINE/eterhack/loader/wine-glibc notepad


Для просмотра информации получившийся файл callgrind.out.* копируем в каталог с исходниками wine и запускаем KCacheGrind:

$ kcachegrind callgrind.out.*

Чтобы видеть исходный код glibc, нужно установить пакет glibc-core-debuginfo.

В крайнем случае распаковать glibc:

rpmgp glibc
cd RPM/SPECS
rpm -bp glibc.spec

и указать в программе Settings->Configure путь к RPM/BUILD/glibc-*</pre>

На сборочном сервере Etersoft

Для простоты код запуска wine под valgrind помещён в скрипт ww-valgrind, так что можно запустить просто

$ ww-valgrind notepad

Запуск с wine приложениями

С запуском 1С. Перейти в папку где лежит exe файл для запуска 1с (Например: ~/wine_c/Program Files/1Cv77/BIN) Выполнить команду: valgrind --leak-check=yes -v wine 1cv7l.exe