Крутой профайлер памяти в Go
30 июля 2015 Golang 12715 просмотров
Очень хорошо, когда вы знаете, сколько памяти использует ваше приложение. Еще лучше знать, когда наступают пики, чтобы оптимизировать приложение. У вас для этого может быть свой подход, я же хочу предложить одну очень полезную библиотеку для Го, которая буду отображать это в реальном времени в web-интерфейсе.

Библиотека находится здесь. Ее автор - Fog Creek Software.

При её подключении она не включается автоматически, что очень хорошо, всегда можно нажать Start/Stop. В проект интегрируется довольно просто.
go get github.com/wblakecaldwell/profiler
package main

import (
   "github.com/wblakecaldwell/profiler"
   "net/http"
)

func main() {
    profiler.AddMemoryProfilingHandlers()
    go http.ListenAndServe(":6060", nil)

    // Your application
}
Далее идете по адресу http://localhost:6060/profiler/info.html, нажимаете Turn it On и получаете информативную картинку в реальном времени.



Я настраиваю своё приложение на запуск с параметром, если он передан - запускаем на определенном хост-порте:
myapp -p=localhost:6060