Задать вопрос
nepster-web
@nepster-web

Оперативная память vs файловая система?

Предположим у нас есть CLI приложение, которое анализирует большой объем данных. Ну относительно большой, например парсит сайт и считает кол-во div тегов, далее записывает это в качестве отчета в файл.

Для того, чтобы обойти весь сайт нужно достаточно кол-во времени, предположим не большой сайт сможем обойти за 30 секунд, собрать все данные в массив и уже после всего из этого массива собрать файл с отчетом. Так кстате работают многие приложения, например сборщики frontend, они вначале что-то грузят в оперативку и только потом в файловую систему. Я сталкивался с такой ситуацией, что если мало оперативки, тот же composer или gulp не могут загрузить большие пакеты (например на сервере не смог загрузить gulp-image, где было менее 400 мб оперативки).

Вернемся к анализатору сайта, что если нам не хватит оперативки или возникнет другая ошибка ? Перед нами момент, либо мы получаем результат целиком и полностью либо не получаем ничего. Вопрос почему так делают, почему работают с оперативной память чаще, чем скажем записывают данные в файл или базу, чтобы в случае сбоя хоть какой-то но результат был ?
  • Вопрос задан
  • 241 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
miraage
@miraage
Старый прогер
Скорость, разумеется.
Ответ написан
Комментировать
edli007
@edli007
full stack, team lead
если упретса в лимит, указанный в настройках - ошибка.
если упретса в физический лимит сервера - залагает.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
пишем результаты в очередь, обработчик очереди записывает репорт в файл или добавляет еще задачи в очередь и т.д. и т.д. Если использовать какие-нибудь менеджеры очередей у них обычно есть возможность персистить очереди на файловую систему для надежности.
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
если вы пишите в файл части - как вы при внезапной смерти процесса различите, что у вас правильно обработалось от того, что частично?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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