invariance
да мне бы без указателей на указатели разобраться...
Oleg
Блин а многие в универе тупили на этой теме, гребаные указатели хД
Oleg
я сам только спустя большой такой промежуток начал понимать их хД
朝の日差し ✙
Когда моя преподавательница увидила три звёздочки, то меня больше за эту тему не трогали😂😂
Eugene
@segfauIt может поможет
https://youtu.be/9Pk7xAT_aCU
потом еще парочку видео материалов, статей для укрепления прочесть нужно будет
Anonymous
надо было еще между звездочками расставить const
Anonymous
:))
invariance
Спасибо)
Sol
подскажите, как правильно проверить открыт ли канал в горутине, которая в этот канал должна отправлять данные? if _, ok := <-cOrder; ok {} ждёт когда в канал что-то пошлют, что не подходит по логике
Anonymous
Канал должен быть открыт всегда, просто не закрывай его, когда нужно GC сам все уберет
Kirill
Kirill
Kirill
Sol
Канал должен быть открыт всегда, просто не закрывай его, когда нужно GC сам все уберет
ну в моём случае, если оставить канал открытым то он заблокирует отправляющую горутину до тех пор, пока не появится горутина принимающая. мне это не подходит, т.к. отправляющая горутина принимает ошибки и некоторые ошибки должна отправлять куда надо, если кто надо на месте. а если нет, то никуда не отправлять и продолжать работу не прерываясь
Anonymous
Sol
Anonymous
Sol
Видимо, Я не так понял задачу :)
задача проста: есть горутина, которая принимает сообщения, которые обычно не нужны, и их просто выводят на экран. но есть сообщения со статусом ошибки, некоторые из них являются результатом действия другой горутины и эту ошибку надо бы отправить этой горутине для обработки.
Anonymous
Sol
в любом случае вывод сообщений не должен прерываться
Anonymous
Sol
Т.е. переслать это же сообщений обратно отправителю, да?
не отправителю, а инициатору этой ошибки, в случае если инициатор - программа. а если не программа то просто показать на экране. инициатор запускает горутину которая что-то делает и открывает канал и ждёт сообщение. оно или ок или эррор
Sol
если держать канал постоянно открытым - то происходит блокировка до появления горутины-приёмника. либо надо делать канал с буфером, который может закончиться
Aliaksandr
советую почитать про select - https://tour.golang.org/concurrency/5
Sol
Aliaksandr
select {
case ch <- something:
default:
// cannot send to ch, do something else here
}
Sol
Sol
а впрочем, если держать канал открытым то работает как мне надо. спасибо
Daniel
Michael
Oleg
Anonymous
что лучше юзать для парсинга конфига? меня интересует минимальное выделение памяти
Мерль
Anonymous
очень жесткие
Anonymous
ну надо что на время
Anonymous
у меня уже сроки времени нет
Anonymous
для конфигов очень популярен viper но странный случай с ограничением конфига по памяти
Anonymous
если конфиг такой громадный, не лучше ли его в какойлибо из бд хранить?
Anonymous
тогда можно вычитать отдельные настройки не вычитывая его весь и это сэкономит память...
Kirill
Anonymous
у меня машина на 128мб озу
Kirill
Kirill
возьмите https://github.com/go-yaml/yaml и не парьтесь
Anonymous
Anonymous
если надо работать с текстом то предложу вычитывать построчно
Anonymous
Anonymous
Alexander
еще такая штучка есть https://github.com/json-iterator/go
Anonymous
есть сравнение?
Есть посмотри видео техносферы они там проводили тесты на восьмом по-моему занятие
Anonymous
Anonymous
Это очень как дофига
Ты Ещё учитывай что на этом объёме работает операционная система приложению остаётся не так много
Anonymous
Да Go не самый лучший выбор когда у вас мало памяти но никто мне об этом не сказал когда начинали писать А сейчас уже выписывают но что-то другое время не особо нет
Anonymous
К сожалению я уже ушёл от компьютера если не забуду проведу тесты возможно данные которые были в этом видеоролике выставили я этого не отрицаю
Pawel
если Вам не хватает 128 мб, то я сомневаюсь, что замена стандартного парсера жсон на маргинальный решит проблему.
И не думаю что стандартный парсер будут кардинально меньше мозгов забирать, скорее больше проц грузить рефлексивными вычислениями.
Pawel
если действительно хотите съэкономить на сериализации конфига, binary/encoding binary/decoding Вам в помощь
Pawel
у меня кстати в проде крутится сервис на Малинке с 256 мб, полёт нормальный, проблем с парсером жсон нет. при этом ось может и 200 мб отжирать
Pawel
Anonymous
Nikita
Вы вообще бредом занимаетесь. Сначала сделайте что-то, чтобы работало, а если памяти будет не хватать, уже и заниматесь оптимизацией.
Anonymous
Так что только текст
Kirill
Kirill
Kirill
Pawel
Eugene
интресно :)
Kirill
это ядро и достаточно старое