Индекс форумов |
Исходное сообщение |
---|
"Релиз языка программирования Go 1.15" Отправлено Аноним, 15-Авг-20 06:03 |
Да ты можешь отключить одной командой или передать через переменную, но тут возникает загвоздка: почти все стандартные библиотеки в go любят выделять память на heap по любому чиху, взять хотя бы тот же net/http, через n запросов твоя программа либо встанет колом либо сольется. Допустим ты отказался от использования стандартных либ, обвешал все своими собственным кодом, все бы хорошо но вот опять течка - runtime как оказалось тоже не против выделит для себя памяти на каждый пук, плюсом ну и теперь у тебя стандартный mheat сходит с ума так как mcache почти перестал работать нормально, так как GC не переводит снапы тебе в свободное queue. Конечно можно вызывать GC напрямую и runtime - но тогда это будет кошмарно со стороны производительности. Вот ты уже сидишь и переписываешь runtime, а если ты переписываешь runtime тогда GC уже на тебе. Другая опция забыть про heap, о5 25 - если все держать в стаке то зачем отключать GC? Да и так далеко не уедешь. Вот и остается что оставить GC в покое и минимизировать число выделений, ресайклать уже выделенную память и держать только n routines с всякими chan для передачи работы. Вот и весь твой go сошел на нет. Зачем так (https://github.com/valyala/fasthttp) себе мозг выносить, когда можно на том же C, ну или добавить немного мазахизма и писать на С++. |
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |