169 похожих чатов

У меня есть скрипт написанный на crystal, который крутится на

vm с 512mb ram, и он время от времени вылетает из-за нехватки памяти, поэтому я увеличил память до 2gb, но поведение осталось таким же, разве что увеличились промежутки между вылетами, скрипт просто забирает порционно данные из одного места и пушит их в другое. Код не использует никаких классов и переменных экземпляров, переменные в которые кладу данные - рождаются и умирают в одной и той же функции, так что утечки быть не должно, мне кажется что GC не успевает убирать лишнее, или еще что то. В общем вопрос, как это все можно продебажить, или что делают в таких кейсах ? Просто хочется стабильности. У меня на elixir +100500 таких скриптов, и нигде нет таких проблем.

2 ответов

16 просмотров

у меня помоему было похоже, в сервер добавил вызов GC.collect раз в 30 секунд, все прошло

Сергій- Автор вопроса

Вдруг кому интересно, исправил косяк, я затупил с рекурсией n+1. В общем было что то вроде этого: class Importer def start sources.each do |source| spawn { import_from(source: source) } end end private def import_from(source, progress = nil) progress ||= last_progress_for(source: source) # some code to import data from source sleep 1.minute if progress.finished import_from(source: source, progress: progress) end end и поправил на такое class Importer def start sources.each do |source| spawn do progress = last_progress_for(source: source) loop do progress = import_from(source: source, progress: progress) end end end end private def import_from(source, progress : Progress) : Progress progress ||= last_progress_for(source: source) # some code to import data from source sleep 1.minute if progress.finished progress end end

Похожие вопросы

Обсуждают сегодня

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
а вы в курсе, что Initialize() не работает? var arr123: array[0..123] of Byte; ... Initialize(arr123, SizeOf(arr123));
Iluha Companets
8
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
что читать по делфи?вообще 0 в нем
fd dsds
9
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
const dirname = new URL((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new UR...
Kirill Shaplyko
4
Карта сайта