Aleksandr
неправильно делаешь что-то. имя корневого пакета + util.
Anonymous
выше)
это смотря с какой стороны посмотреть)
Aleksandr
это смотря с какой стороны посмотреть)
в программировании дерево всегда изображается сверху вниз либо слева направо
Anonymous
А зачем тебе орм
большой легаси проект
Anonymous
с очень большой базой
Anonymous
700 таблиц
Anonymous
без связей а таблицах
Anonymous
Roman
парни, а может кто-нить с профайлингом бенчмарков разобраться?
Roman
вот код бенча https://pastebin.com/1Ppj0Zfq
Roman
вот так запускаю бенч
Roman
go test -bench=. -benchmem -memprofile memprofile.out -cpuprofile profile.out
Roman
запускаю pprof: go tool pprof memprofile.out
Roman
вот такой вывод
Roman
Local symbolization failed for tcpclient.test: open /tmp/go-build517695885/b001/tcpclient.test: no such file or directory Some binary filenames not available. Symbolization may be incomplete. Try setting PPROF_BINARY_PATH to the search path for local binaries. File: tcpclient.test Type: inuse_space Time: Sep 16, 2018 at 3:16pm (MSK)
Roman
как побороть?
Messer
Вроде как там нужно ещё указать параметром название бинарника
Roman
бинарник чего, самой программы, бенч функции которой делаю?
Messer
go tool pprof ./your_bynary ./pro/cpu.pprof
Messer
А что за формат .out? Профилирование .pprof формат
Roman
да расширение там точно пофигу
Roman
go version go1.10.1 linux/amd64
Roman
указал путь к бинарнику сообщение исчезло
Pavel
Вроде если бинарник скомпилен такой версией, то все символы в профайле уже быть должны.
Roman
самой функи, которую в бенче тестирую в выводе нет
ketamine ranch
Как можно спарсить one to many в структуры в го без орм?
Daniel
Без orm парсинг построчный
ketamine ranch
type User struct { name string Items []Item } type Item struct { name string } тип такого?
ketamine ranch
в два запроса придется делать?
ketamine ranch
сначала получать юзера а потом на втором запросе все его итемы
ketamine ranch
А чего джойном не запросить?
а в структуру получиться засканить?
Aleksandr
а в структуру получиться засканить?
без orm ты сканишь поколоночно, поэтому структуры не играют роли
Евгений
Народ - поясните пожалуста что такое Context? Он-же backgroud context и.т.п.
Евгений
Часто вижу в вэб приложениях но так и не разобрался что да как
Anonymous
Народ - поясните пожалуста что такое Context? Он-же backgroud context и.т.п.
это нужно, чтобы обрабатывать отмену запросов пользователя, например, если юзер закрыл браузер до завершения запроса
Anonymous
чтобы в холостую не работать
freezlite
accountManagerController := controllers.NewAccountManager(db) accountManagerController.InitRoutes(authRouter) Насколько это раковая опухоль от 1 до 10
Евгений
это нужно, чтобы обрабатывать отмену запросов пользователя, например, если юзер закрыл браузер до завершения запроса
И как вообще с ним правильно работать? Хотя-бы простой пример на трехпалом http сервере?
Anonymous
accountManagerController := controllers.NewAccountManager(db) accountManagerController.InitRoutes(authRouter) Насколько это раковая опухоль от 1 до 10
тока в контроллер не всё db еще должно приезжать, а только нужные репозитории)
freezlite
я решил репозиторий инициализировать в контроллере
freezlite
func NewAccountManager(db *gorm.DB) *AccountManager { return &AccountManager{ Repository: postgres.NewAccountManager(db), } }
freezlite
я рефакторю, не хуже чем была
freezlite
был вообще треш
Евгений
https://www.youtube.com/watch?v=LSzR0VEraWw
Спасибо - гляну...
freezlite
@cryptstal на самом деле меня конкретно смущает имя контроллер, я как пыхарь который в го перешел
freezlite
паливно
freezlite
у меня болезнь перфекционизма
Anonymous
в основном конечно это handler
freezlite
бывало что я тестовое задание проваливал из за того что не знал как назвать
freezlite
но спасибо
Roman
парни, кто может онлайн с профайлингом помочь разобраться?
Roman
ну да, я немного выше описал, что делаю, у меня вполне конкретный вопрос есть, почему я не вижу в результатах top функу, которую проверяю в бенчмарке
Roman
внутри функции бенчмарка нужно, что-нить типа pprof.WriteHeapProfile(f) писать?
Roman
вот код бенча https://pastebin.com/1Ppj0Zfq
вот тут я начал описывать
Anonymous
внутри функции бенчмарка нужно, что-нить типа pprof.WriteHeapProfile(f) писать?
странно, что http.pprof) я не помню уже как в тестах профилировать. по сути он же в tmp бинарь под тесты создаёт, тестирует и стирает его. а когда ты пытаешься pprof запустить, он не может найти его
Roman
нене, с этим я разобрался, он создает в моем случае бинарь tcpclient.test и я указываю этот бинарь при запуске go tool pprof
Anonymous
нене, с этим я разобрался, он создает в моем случае бинарь tcpclient.test и я указываю этот бинарь при запуске go tool pprof
In any case I would recommend not passing the binary name in the command line, and instead set the variable PPROF_BINARY_PATH as needed (see doc/pprof.md).
Anonymous
уже видел?
Roman
ага, но это не пробовал, не думаю, что это причина того, что я функи в выводе не вижу
Roman
сейчас попробую, но чет сомневаюсь сильно, что это как-то повлияет
Anonymous
а графику строил? мб функция до топа не дотягивает?
Anonymous
мб её сами бенчи перебивают
Roman
полную не строил
Roman
врядли у меня там куча массивов по 32 байта создается, думаю, что полюбому должна была бы вылезти
Roman
а кстати, там в отдельной горутине чтение из канала происходит, это не может ни как повлиять?
Aleksandr
с sqlx можно в структуру
думаю имелось в виду на голом db/sql
Pavel
Сап
Pavel
Посоветуйте какую взять задачу для учебного проекта До этого писал простейшие утилиты типа того что обычно на баше пишется Хочется заюзать конкаренси фичи го