Closed abone28 closed 9 years ago
Thanks for your patch, will review it later today.
On my ~850Kbs tgz we save 14% ram but we are ~22% slower (measured with /usr/bin/time) . Can you share your tarball to double check please?
Sorry. My fault. I should not touch _parse_timed_block.
My host uses ubuntu version of bootchart which collect data via /proc interface. Here is my bootchart tarball. https://drive.google.com/file/d/0Bzi3TyA9Au_uaVF2N1IzUzFoVGM/view
I was not able to check patch influence on data collected via tasklog. I will rewrite the patch shortly and update pull request. Could you share your tarball so I can test it before commit.
Reverted _parse_timed_blocks to old in-memory parsing. This should limit iterdecode performance penalty.
Parsing taskstat.log shold be as fast as in version 0.14.7.
Parsing proc_ps.log should be faster than previous commit, but still a bit slower than version 0.14.7. Memory footprint should be significantly lower than in version 0.14.7.
In the next plot (version 0.14.7 - black line, previous commit - blue line, current commit - red line)
Thanks a lot Andrey! I've squashed in one commit and cherry-picked to master in 3ab81137cafe25c2ca4bc3a5f322a63646f9ce8d. While at it fixed it with python3 and added some numbers to the commit message.
On my Ubuntu host with 2GiB of RAM rendering 100 seconds of bootchart data uses about 500-600 MiB of memory. This is too large for me.
I rewrite most memory hungry function _parse_proc_ps_log with iterators. New code uses only 100-150 MiB of memory. Hope you find this patch useful too.