Task2 homework#85
Conversation
| Я разбил файл data_large.txt на несколько файлов с 1%, 5%, 10% и 50% от общего объема данных | ||
| Замеры начинались на 1% данных, что позволяло уложиться в 10 сек. | ||
| При видимом улучшении показателя потребляемой памяти изменения коммитились | ||
| При значительном снижении потребляемой памяти и времени работы программы постеменно увеличивался объем данных |
| стало очевидно, что использование временного вспомогательного файла хоть и дало результаты, но их явно недостаточно | ||
| - было решено писать отчеты по пользователям сразу в итоговый отчет, так же использовать счетчики для отчета по статистике и записывать статистику уже в конец файла. Это позволило бы избавиться от лишних операций с дополнительным файлом | ||
| - после некоторых "мучений" с формированием обоих отчетов в один синтаксически корректный .json файл результат был достигнут | ||
| - повторные запуски теста с выводом потребления памяти системным процессом показывали разные результаты, но каждый раз укладывались в бюджет |
There was a problem hiding this comment.
результаты могут отличаться, из-за того что GC работает не всегда предсказуемо
|
|
||
| Замеры по итогу (полный объем данных) | ||
| - время работы программы: 6.4 сек | ||
| - потребление памяти от 19 до 36 мб |
There was a problem hiding this comment.
Судя по картинке из Valgrind там программа на самом деле не работает
Может быть файл не пробрасывается или что-то в таком роде
"Правильная картинка" - примерно ровная линия в районе 30-40MB
Главное, что потребление памяти практически не зависит от объёма входных данных и не растёт по мере работы программы
There was a problem hiding this comment.
Сейчас перепроверил еще раз, отключил тест, чтобы файл отчета не перезатирался. На выходе получил json на 151 мб. Это может как-то быть связано с тем, что у меня М1? может он как-то хитро с памятью работает через своп и профилировщик это не отслеживает? При этом пик по памяти показывает 4мб
Провозился с отчетом valgrind-massif, визуалайзер показывает подозрительно маленькое потребление памяти. Перепроверял кучу раз, на вход подается data_large.txt, тест проходит, сам файл отчета с актуальной датой и временем, но потребление памяти все равно около 7 мб в пике. При этом скрипт profile.sh отрабатывает довольно долго (около минуты), хотя сама руби программа работает меньше 10 сек.