Skip to content

Task2 homework#85

Open
vsav wants to merge 8 commits intohardcode-dev:masterfrom
vsav:task2-homework
Open

Task2 homework#85
vsav wants to merge 8 commits intohardcode-dev:masterfrom
vsav:task2-homework

Conversation

@vsav
Copy link
Copy Markdown

@vsav vsav commented May 31, 2022

Провозился с отчетом valgrind-massif, визуалайзер показывает подозрительно маленькое потребление памяти. Перепроверял кучу раз, на вход подается data_large.txt, тест проходит, сам файл отчета с актуальной датой и временем, но потребление памяти все равно около 7 мб в пике. При этом скрипт profile.sh отрабатывает довольно долго (около минуты), хотя сама руби программа работает меньше 10 сек.

Copy link
Copy Markdown
Collaborator

@spajic spajic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread case_study.md
Я разбил файл data_large.txt на несколько файлов с 1%, 5%, 10% и 50% от общего объема данных
Замеры начинались на 1% данных, что позволяло уложиться в 10 сек.
При видимом улучшении показателя потребляемой памяти изменения коммитились
При значительном снижении потребляемой памяти и времени работы программы постеменно увеличивался объем данных
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment thread case_study.md
стало очевидно, что использование временного вспомогательного файла хоть и дало результаты, но их явно недостаточно
- было решено писать отчеты по пользователям сразу в итоговый отчет, так же использовать счетчики для отчета по статистике и записывать статистику уже в конец файла. Это позволило бы избавиться от лишних операций с дополнительным файлом
- после некоторых "мучений" с формированием обоих отчетов в один синтаксически корректный .json файл результат был достигнут
- повторные запуски теста с выводом потребления памяти системным процессом показывали разные результаты, но каждый раз укладывались в бюджет
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

результаты могут отличаться, из-за того что GC работает не всегда предсказуемо

Comment thread case_study.md

Замеры по итогу (полный объем данных)
- время работы программы: 6.4 сек
- потребление памяти от 19 до 36 мб
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Судя по картинке из Valgrind там программа на самом деле не работает

Может быть файл не пробрасывается или что-то в таком роде

"Правильная картинка" - примерно ровная линия в районе 30-40MB

Главное, что потребление памяти практически не зависит от объёма входных данных и не растёт по мере работы программы

Copy link
Copy Markdown
Author

@vsav vsav May 31, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сейчас перепроверил еще раз, отключил тест, чтобы файл отчета не перезатирался. На выходе получил json на 151 мб. Это может как-то быть связано с тем, что у меня М1? может он как-то хитро с памятью работает через своп и профилировщик это не отслеживает? При этом пик по памяти показывает 4мб

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants