Size: a a a

2021 June 21

VV

Vladislav Vegner in Go-go!
В основном она определяется автоматически. Но иногда вот бывают затыки.
источник

VV

Vladislav Vegner in Go-go!
Предположим, а что делать если нужно определить переход на следующий день? Как это организовать?
источник

N

Nikita in Go-go!
спасибо большое , понял в чем пробелма была , буду иметь ввиду
источник

VY

Vladislav Yarmak in Go-go!
а можно пример привести?
источник

Nn

No name in Go-go!
проблема оказ-ся было  связано с mysql.
источник

ЯК

Ярослав Коробейников... in Go-go!
Так, я в тупой ситуации перефиксил кучу тестов в проекте, и они все проходят теперь но в конце консоль зависает.... Как будто какая-то горутина что ли из под контроля вышла.... А тут проект не маленький ;D
Есть какой-то способ выявить что это подвисло? -race естественно не помог)
источник

RS

Roman Sharkov in Go-go!
поставить timeout
источник

RS

Roman Sharkov in Go-go!
и посмотреть на каком месте остановились горутины
источник

ЯК

Ярослав Коробейников... in Go-go!
Да там много тестов и в них вроде graceful тестятся горутина, и мест таких много, одна рутинка выскачила, но это я тупой) Я нашёл её)
источник

RS

Roman Sharkov in Go-go!
ничего не понял, но ладно
источник

ЯК

Ярослав Коробейников... in Go-go!
Да кое где скажем так добавлялся wg.Add(1) но горутину при этом забыл запустить 😂 а просто вызывал функцию которую надо было в go запускать
источник

ЯК

Ярослав Коробейников... in Go-go!
My bad
источник

AP

Andrew Popov in Go-go!
func (p *BestBidOfferWebSocketClient) handleMessage(msg string) (interface{}, error) {
result := market.SubscribeBestBidOfferResponse{}
err := json.Unmarshal([]byte(msg), &result)
return result, err
}


Вопрос по куче. Есть во такой вот метод. Тут создаётся структура market.SubscribeBestBidOfferResponse в стеке. Далее она по ссылке передаётся в json.Unmarshal.
По идея, тут нигде нет утечки в кучу. Или есть при передачи в анмаршал?

Но тут ещё одна загвоздка. Возвращаемый параметр interface{}. При передачи result как структуры в стеке туда не случается ли утечка в кучу из-за особенности interface{}?

Этот участок кода в одной из библиотек обрабатывает очень высоконагруженное место в веб-соккетах.
И профилировщик показывает тут одно из самых крупных “засерателей” кучи, хотя по сути цель метода конвертировать данных из соккетов в структуру пакета и отдать выше на обработку.
Класть данные от этого огромного потока в кучу нет никакого смысла, но почему-то это происходит тут.
источник

RS

Roman Sharkov in Go-go!
конечно есть. Вы передаёте указатель в другую функцию
источник

AP

Andrew Popov in Go-go!
Т.е. Unmarshal гарантировано отправить в кучу данные?
источник

RS

Roman Sharkov in Go-go!
это же легко проверить бенчмарком за пару минут 😀
источник

RS

Roman Sharkov in Go-go!
и да, скорее всего отправит
источник

RS

Roman Sharkov in Go-go!
json.Unmarshal не стоит использовать в hot path'е

лучше использовать кодогенератор для конкретной структуры
источник

ЯК

Ярослав Коробейников... in Go-go!
Так так так.... Очень интересно, а можно поподробнее? Ссылочку какую-нибудь?)
источник

DP

Daniel Podolsky in Go-go!
на самом деле - это уже давно не так
источник