Можете, пожалуйста, рассказать как решали проблему повторения настроек в конфиге (и вообще его разрастания)?
Например, если нужно для каждого эндпоинта сделать jwt верификацию, то мы постоянно дублируем какую-то часть конфига. Используете ли text/template, который поддержиает krakend?
if atomic.CompareAndSwapUint64(addr, cur, nxt) { return nxt }
Реализация с циклом for похожа на принцип работы мьютекса, поэтому производительность будет одинаковая, а в некоторых моментах даже хуже (т.к. циклы в lockSlow() и unlockSlow() написаны на более низком уровне)
Имхо, в вашем примере прирост скорости вышел только из-за работы шедулера горутин, поэтому на других устройствах результаты будут совершенно другими.
Понял, спасибо за ответ!
Интересная статья, спасибо!
Можете, пожалуйста, рассказать как решали проблему повторения настроек в конфиге (и вообще его разрастания)?
Например, если нужно для каждого эндпоинта сделать jwt верификацию, то мы постоянно дублируем какую-то часть конфига. Используете ли text/template, который поддержиает krakend?
Можно сохранять трейсы только за определённый период времени (например, неделю). Способы хранения трейсов не отличаются от способов для обычных логов.
if atomic.CompareAndSwapUint64(addr, cur, nxt) {
return nxt
}
Реализация с циклом
for
похожа на принцип работы мьютекса, поэтому производительность будет одинаковая, а в некоторых моментах даже хуже (т.к. циклы в lockSlow() и unlockSlow() написаны на более низком уровне)Имхо, в вашем примере прирост скорости вышел только из-за работы шедулера горутин, поэтому на других устройствах результаты будут совершенно другими.
Вывод: ждем 1.19
То есть при первом создании переменной определенного размера пул выделит 8кб (и больше в зависимости от класса)?
Если же мы этого не сделали и пишем в nil канал, то произойдет
fatal error
, так как в исходниках Go идет проверка на nil.Да, будет
deadlock
, но не всегдаfatal error
Стоит добавить уточнение 'при условии всех спящих горутин'Возможно, я как читатель неправильно понял область ответа
При чтении/записи из/в
nil channel
будет не паника, а блокировкаУже вышел go 1.18.3