Open
Conversation
suslovnikita
commented
May 6, 2024
spajic
approved these changes
May 11, 2024
Collaborator
spajic
left a comment
There was a problem hiding this comment.
valgrind вероятно не запустился корректно, так как там памяти меньше 20мб
им на самом деле более интересно чекать на стадии когда память ещё нарастает во время работы программы; когда потребление уже константное, там можно только это засвидетельствовать (но есть ещё кейс когда программа например сразу крашится / не может найти файл, тогда это тоже выглядит как константное потребление памяти, но меньше минимума)
| Я решил исправить эту проблему, оптимизировав эту программу. | ||
|
|
||
| ## Формирование метрики | ||
| Для того, чтобы понимать, дают ли мои изменения положительный эффект на быстродействие программы я придумал использовать такую метрику: количество потребляемой памяти при просчете 100к записей (885 мб на старте, 11.4 секунды) |
| ### Ваша находка №6 | ||
| - профилировщик показывает `48221760 task-2.rb:72` как лидирующую позицию, но дальнейшие попытки оптимизации не приводят к снижению потребляемой памяти: основной точкой роста является ограничение накапливаемых данных | ||
| - переписываю программу в потоковом стиле (накапливаем данные только по 1 пользователю и его сессиям за раз, после накопления собираем статистику, пишем в файл и начинаем сначала) | ||
| - снизилась до 21мб для 100к (для всего файла тоже 21мб) |
Collaborator
There was a problem hiding this comment.
да, самое кайфовое, что теперь любой объём данных так можно перелопатить
task-2.rb
Outdated
| user_stats['longestSession'] = session['time'] | ||
| end | ||
|
|
||
| unless report['allBrowsers'].include?(session['browser']) |
Collaborator
There was a problem hiding this comment.
Set бы, Array.include? -> O(N), Set << browser -> O(1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.