Отладка
Исследование проблем и профилирование производительности приложения
В этом руководстве показаны различные инструменты для анализа и исследования возможных проблем с производительностью в приложении Wails с использованием
runtime/traceдля создания графиков производительности и их просмотра в браузере
Создание трассировок производительности
Подготовьте приложение к трассировке
Убедитесь, что рядом с точкой входа в программу есть примерно такой код
// Create the file to store our trace data within
traceFile, err := os.Create("trace.out")
if err != nil {
log.Fatalf("trace.out could not be created: %v", err)
}
// Start the trace
if err := trace.Start(traceFile); err != nil {
_ = traceFile.Close()
log.Fatalf("trace.start could not start: %v", err)
}
// Trace cleanup on exit. Alternatively,
defer func() {
trace.Stop()
_ = traceFile.Close()
}()
...Start your wails app here...Выходные данные будут сохранены в trace.out в вашем рабочем каталоге и будут содержать метрики за всё время работы приложения. Трассировка по умолчанию содержит довольно необработанные данные; настоятельно рекомендуем подробнее изучить трассировку, чтобы добавить больше контекстной информации и ограничить фактически записываемые данные. Например: WithRegion, NewTask, Log
Запустите приложение, чтобы создать трассировку
Пока приложение работает, трассировка будет непрерывно записываться вплоть до момента завершения. Выполните в приложении несколько действий, а затем завершите его работу
Установите средства визуализации
Для некоторых представлений требуется Graphviz. Чтобы проверить, установлен ли он, выполните dot -V
# macOS
brew install graphviz
# Ubuntu/Debian
sudo apt-get install graphviz
# Arch
sudo pacman -S graphviz
Визуализируйте трассировку
Когда данные трассировки будут готовы, можно запустить веб-интерфейс
go tool trace trace.out
После этого в браузере по умолчанию должна открыться главная страница средства просмотра событий трассировки (рекомендуется использовать браузер на базе Chrome).
Пользователям, работающим с этим средством впервые, вероятно, наиболее полезен экран Syscall profile. На нём подробно показано, что именно делает программа и сколько времени занимают её операции