Форум сайта python.su
Здравствуйте.
Я написал небольшую программу. Она принимает файл, обрабатывает его и выдает результат. Проблемы начинаются тогда, когда размер файла привышает 100 мб, ОС просто убивает процесс. Вот я думаю, что можно сделать, добавить многопоточность или многопроцессность? С одной стороны, многопоточность не занимает столько много ресурсов компьютера, как многопроцессность. С другой стороны, многопроцессность работает более стабильно.
А вы что думаете? Что бы вы выбрали: многопоточность или многопроцессность? Или вобще третий вариант?
Отредактировано misterMinister (Май 28, 2025 04:11:46)
Офлайн
Есть многопоточность и многопроцессность. Никак не многопроцессорность. Это в питоне многопоточность неполноценная, поэтому не может выполняться параллельно на разных ядрах процессора. И из-за этого для распараллеливания используют многопроцессность, так как управление процессами находится в операционной системе, а операционная система может уже распределять процессы по разным ядрам процессора.
misterMinisterПричина не выяснена. Вместо залепливания этой дырки чем угодно, лучше будет установить причину сбоя. Скорее всего, там в алгоритме что-то не учтено.
Проблемы начинаются тогда, когда размер файла привышает 100 мб
Отредактировано py.user.next (Май 27, 2025 23:11:32)
Офлайн
> Что бы вы выбрали: многопоточность или многопроцессорность?
Что хочешь, то и выбирай. Всё равно ни одно ни другое тебе не поможет.
> когда размер файла привышает 100 мб, ОС просто убивает процесс
Читай файл частями и обрабатывай их последовательно.
Офлайн
py.user.next
Есть многопоточность и многопроцессность. Никак не многопроцессорность.Извиняюсь. Исправил.
Причина не выяснена. Вместо залепливания этой дырки чем угодно, лучше будет установить причину сбоя. Скорее всего, там в алгоритме что-то не учтено.Я не знаю, что может быть не учтено. Я сейчас добавил блок try/except и больше ОС прощесс не прерывала. Программа работает, но чем больше файл, тем больше времени на обработку.
Офлайн
Опиши конкретно программу. Вариантов может быть сотня и причин тоже.
Офлайн
> Я сейчас добавил блок try/except и больше ОС прощесс не прерывала
И какая там ошибка?
Офлайн
Rodegast
И какая там ошибка?В том-то и проблема, что ни какой. Просто в терминале появляется сообщение “killed”. Еще, до запуска программы память загружена на 15% - 20%, а после запуска до 99% - 100%. Я думаю, что сбой происходит именно по этой причине. Программа занимает слишком много памяти.
Опиши конкретно программу.Ничего особенного. Программа конвертирует файл в другой формат. Пока это картинки только.
Офлайн
py.user.next
Опиши конкретно программу.
misterMinisterКак программа конвертирует файл? Из какого формата в какой конвертирует? Твоя программа на питоне вообще делает что во всей этой системе?
Программа конвертирует файл в другой формат.
Офлайн
Извиняюсь что не отвечал долго. Я руку сильно повредил. Сейчас ничего не могу делать. Пока отложил все проекты.
Всем спасибо.
Офлайн