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

Материал из Русский WINE
Перейти к: навигация, поиск
м (1 версия)
 
(не показано 12 промежуточных версии 3 участников)
Строка 1: Строка 1:
[[Category:WINE]]
+
[[Category:Разработка]]
{{MovedFromWikiEterSoftRu|WINE/Profiling}}
+
 
+
 
+
 
== Профилирование ==
 
== Профилирование ==
 +
Valgrind хорошо известен как мощное средство поиска ошибок работы с памятью. Но кроме этого, в его составе имеется некоторое количество дополнительных утилит, предназначенных для профилирования программ, анализа потребления памяти и поиска ошибок связанных с синхронизацией в многопоточных программах.
  
 
+
Более подробно читать тут: http://alexott.net/ru/writings/prog-checking/Valgrind.html
  
 
Существуют средства, позволяющие получить подробную и наглядную информацию об узких местах программы.
 
Существуют средства, позволяющие получить подробную и наглядную информацию об узких местах программы.
Строка 11: Строка 9:
 
Для того, чтобы получить полноценную информация, нужно выполнить следующие действия:
 
Для того, чтобы получить полноценную информация, нужно выполнить следующие действия:
  
 +
* устанавливаем пакет glibc-core-debug (если хотим получить информацию и по функциям glibc)
  
 +
* запускаем программу (на примере notepad) командой
  
  * устанавливаем пакет glibc-core-debug (если хотим получить информацию и по функциям glibc)
+
  $ LD_LIBRARY_PATH=/usr/lib/debug valgrind  --trace-children=yes --tool=callgrind ~/Projects/WINE/eterhack/loader/wine-glibc notepad
  
* запускаем программу (на примере notepad) командой
+
Для просмотра информации получившийся файл callgrind.out.
  
<pre>$ LD_LIBRARY_PATH=/usr/lib/debug valgrind  --trace-children=yes --tool=callgrind ~/Projects/WINE/eterhack/loader/wine-glibc notepad</pre>
+
* копируем в каталог с исходниками wine и запускаем KCacheGrind:
  
Для простоты этот код в более корректном варианте помещён в скрипт ww-valgrind, так что можно запустить просто
+
$ kcachegrind callgrind.out.
  
<pre>$ valgrind notepad</pre>
+
*Чтобы видеть исходный код glibc, нужно установить пакет glibc-core-debuginfo.
  
 +
В крайнем случае распаковать glibc:
  
 +
rpmgp glibc
 +
cd RPM/SPECS
 +
rpm -bp glibc.spec
  
Для просмотра информации получившийся файл callgrind.out.* копируем в каталог с исходниками wine и запускаем KCacheGrind:
+
и указать в программе Settings->Configure путь к RPM/BUILD/glibc-*</pre>
  
<pre>$ /usr/lib/kde4bin/kcachegrind callgrind.out.*</pre>
+
== На сборочном сервере Etersoft ==
  
 +
Для простоты код запуска wine под valgrind помещён в скрипт ww-valgrind, так что можно запустить просто
  
 +
$ ww-valgrind notepad
  
Чтобы видеть исходный код glibc, нужно установить пакет glibc-core-debuginfo.
+
== Запуск с wine приложениями ==
  
 +
С запуском 1С. Перейти в папку где лежит exe файл для запуска 1с (Например: ~/wine_c/Program Files/1Cv77/BIN)
 +
Выполнить команду:
  
 +
$ valgrind --leak-check=yes -v wine 1cv7l.exe
  
В крайнем случае распаковать glibc:
+
== Для OpenSUSE ==
  
<pre>rpmgp glibc
+
Ставим все 4 следующих пакета
  
cd RPM/SPECS
+
$ epmi valgrind valgrind-debuginfo valgrind-debugsource valgrind-devel
  
rpm -bp glibc.spec
+
И далее по инструкции.
  
и указать в программе Settings->Configure путь к RPM/BUILD/glibc-*</pre>
+
Пример:
 +
 
 +
$ valgrind  --leak-check=yes -v notepad
 +
{{Wine}}

Текущая версия на 18:14, 28 ноября 2015

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

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

Для OpenSUSE

Ставим все 4 следующих пакета

$ epmi valgrind valgrind-debuginfo valgrind-debugsource valgrind-devel

И далее по инструкции.

Пример:

$ valgrind  --leak-check=yes -v notepad
Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование RegeditПубличный префиксНесколько версийКлючи regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwineWine LauncherLutris
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозиторииПрименение Git-патчей
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOverKernelEx
Прочее
PageSetupDlgFreeBSDWwr