Vladislav
Привет всем. Слушайте, а вы не знаете. Есть ли какой-нибудь образцовый проект (на GitHub'е, например). Где приведен пример какого-нибудь REST-сервера. Ну чтобы по паттернам все как положено)
Emil
Emil
это и не го, но репо крутой
Vladislav
Спасибо) но интересует golang конкретно
Vladislav
Так как в Go тот же Gin не диктует никаких паттернов)
Vladislav
А примеры микросервисных проектов есть на Go?
Michael
Kirill
Vladimir
Roman
Vladimir
Anonymous
Roman
BenchmarkPtr-4 2000000000 0.35 ns/op 5769.21 MB/s 0 B/op 0 allocs/op
Vladimir
Kirill
Roman
https://dpaste.de/GQx9
Roman
почему второй вариант медленнее? )
🏁Александр
"unsafe"
"reflect"
🏁Александр
Kirill
Kirill
unsafe не даёт оверхед
🏁Александр
я вообще с трудом улавливаю смысл манипуляшек
Kirill
а зря
Kirill
пора бы разобраться, раз с гошкой работаешь
🏁Александр
не в том смысле, я думаю что за задачу ставил автор написав такое O_o
🏁Александр
это проясняет шаманские песнопения
🏁Александр
но там же вроде есть как бы С библиотека для этого
🏁Александр
или я ошибаюсь?
Kirill
Kirill
ты netmap хочешь перепиливать?
Vladimir
притом желательно в относительно нативном виде
🏁Александр
мы говорим про кросскомпиляцию когда?
Kirill
мы говорим о работе с памятью
Roman
только reflect
reflect там только ради слайса. по факту там никакой рефлексии нет
Kirill
Kirill
там линковщик уже начинает играться
Roman
есть же
я с таким же успехом мог задекларировать свою структуру с таким же набором полей
Kirill
Kirill
хотя я не помню, как именно в 1.9.x
Kirill
возможно и пофиксили, особо спорить не буду
Kirill
Kirill
%)
Vladimir
А тебе хочется нативных структур
Roman
короче, пока оно у меня уперлось в 24 млн пакетов в секунду и проблема тут уже далеко не на стороне go
Kirill
Roman
Roman
так ты профайлинг провёл?
завтра. я на ноуте тот кусок что мне интересно выдрал. завтра посмотрю на вообще все приложение
Roman
а вот https://github.com/google/gopacket писали инвалиды =(
Kirill
внезапно
Kirill
обычные биндинги же
Roman
внезапно
угу. там куча аллокаций в совершенно ненужных вещах =(
Kirill
а. так это во всём языке так
Kirill
угадай, где стандартная либа?
Roman
Мартини?
Kirill
везде
Kirill
кроме gramework
Kirill
он основан на fasthttp
Kirill
который тоже там есть, как и пара роутеров для него
Roman
Выглядит похоже
Anonymous
Err = надо, без двоеточия. Т.к. err был объявлен в предыдущей строке.
Viktor
err уже обявлен
Viktor
выше
Viktor
так что вместо := нужен =
Anonymous
ок, спасибо
Anonymous
Эээ, куда всё удалил ))
Anonymous
в го можно принудительно вызвать сборку мусора?
Anonymous
Michael
правда, с менеджментом памяти в некоторых случаях у Гоу не так всё хорошо, в 1.10 или 1.11 версиях должны появиться фиксы, решающие некторые проблемы с гц и фрагментацией памяти, приводящие к out of memory
Anonymous
Спасибо
Roman
Sebor▂▅▇█▓▒░
А кто каким парсером конфигов пользуется? В стандартной либе ничего не нашел