Найти - Пользователи
Полная версия: Мультипроцессность или мультипоточность
Начало » Центр помощи » Мультипроцессность или мультипоточность
1
misterMinister
Здравствуйте.
Я написал небольшую программу. Она принимает файл, обрабатывает его и выдает результат. Проблемы начинаются тогда, когда размер файла привышает 100 мб, ОС просто убивает процесс. Вот я думаю, что можно сделать, добавить многопоточность или многопроцессность? С одной стороны, многопоточность не занимает столько много ресурсов компьютера, как многопроцессность. С другой стороны, многопроцессность работает более стабильно.

А вы что думаете? Что бы вы выбрали: многопоточность или многопроцессность? Или вобще третий вариант?
py.user.next
Есть многопоточность и многопроцессность. Никак не многопроцессорность. Это в питоне многопоточность неполноценная, поэтому не может выполняться параллельно на разных ядрах процессора. И из-за этого для распараллеливания используют многопроцессность, так как управление процессами находится в операционной системе, а операционная система может уже распределять процессы по разным ядрам процессора.

misterMinister
Проблемы начинаются тогда, когда размер файла привышает 100 мб
Причина не выяснена. Вместо залепливания этой дырки чем угодно, лучше будет установить причину сбоя. Скорее всего, там в алгоритме что-то не учтено.

Rodegast
> Что бы вы выбрали: многопоточность или многопроцессорность?

Что хочешь, то и выбирай. Всё равно ни одно ни другое тебе не поможет.

> когда размер файла привышает 100 мб, ОС просто убивает процесс

Читай файл частями и обрабатывай их последовательно.
misterMinister
py.user.next
Есть многопоточность и многопроцессность. Никак не многопроцессорность.
Извиняюсь. Исправил.

Причина не выяснена. Вместо залепливания этой дырки чем угодно, лучше будет установить причину сбоя. Скорее всего, там в алгоритме что-то не учтено.
Я не знаю, что может быть не учтено. Я сейчас добавил блок try/except и больше ОС прощесс не прерывала. Программа работает, но чем больше файл, тем больше времени на обработку.
py.user.next
Опиши конкретно программу. Вариантов может быть сотня и причин тоже.
Rodegast
> Я сейчас добавил блок try/except и больше ОС прощесс не прерывала

И какая там ошибка?
misterMinister
Rodegast
И какая там ошибка?
В том-то и проблема, что ни какой. Просто в терминале появляется сообщение “killed”. Еще, до запуска программы память загружена на 15% - 20%, а после запуска до 99% - 100%. Я думаю, что сбой происходит именно по этой причине. Программа занимает слишком много памяти.

py.user.next
Опиши конкретно программу.
Ничего особенного. Программа конвертирует файл в другой формат. Пока это картинки только.
py.user.next
py.user.next
Опиши конкретно программу.
misterMinister
Программа конвертирует файл в другой формат.
Как программа конвертирует файл? Из какого формата в какой конвертирует? Твоя программа на питоне вообще делает что во всей этой системе?
misterMinister
Извиняюсь что не отвечал долго. Я руку сильно повредил. Сейчас ничего не могу делать. Пока отложил все проекты.
Всем спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB