0x0f0f0f / memplot Goto Github PK
View Code? Open in Web Editor NEWGenerate image plots of processes' memory usage very quickly, within a single binary.
License: GNU General Public License v3.0
Generate image plots of processes' memory usage very quickly, within a single binary.
License: GNU General Public License v3.0
I found this project when trying to find an automated solution for reporting the maximum memory of a process. I got it running, but the values memplot reports don't match Activity Monitor. I am trying to monitor python running Stable Diffusion, which uses a lot of memory at high resolutions. When Activity Monitor reported ~35-38 GB used, memplot only ~2.8 GB. The variation in memory use over time also did not match the values reported by Activity Monitor. Is it possible this has something to do with the unified memory structure if Activity Monitor reports full memory use but memplot might ignore the portion used by the GPU?
Thanks!
MacBook Pro M2 Max 64GB
MacOS 13.4b2
[Edit] By the way, I think it might be a good addition for memplot to be able to report, numerically, the max, avg, and min memory usage (and maybe the timestamps of the max and min). Maybe also find a way of filtering the data so that the min memory reporting ignores the shutdown sequence of the process if it terminates during monitoring.
Also, I think the MacOS binary for Apple Silicon should be suffixed "arm64", not "amd64". [/Edit]
Connecting via. pid is great for services, but doesn't work well for applications that you start on the command line.
Installation instructions are:
go get -u -v github.com/0x0f0f0f/memplot/cmd
...this installs a binary called "cmd", much like if you cd to that dir. and "go build". Usual layout I use is:
github.com/<user>/<repo>/cmd/memplot/memplot.go
...then:
go get -u -v github.com/0x0f0f0f/memplot/cmd/memplot
..will give you a memplot binary. There might be a more efficient way to do this but, I keep using the same thing because it works :).
Hey, loving the improvements! The auto-spawning a command makes it much easier to use, and the SVG output option lets you zoom in a let a closer look.
I found a panic though. If the spawned command exits with a non-zero exit code, memplot
panics:
panic: exit status 64
goroutine 18 [running]:
main.check(...)
/home/runner/work/memplot/memplot/cmd/memplot.go:16
main.main.func2(0xc000012090, 0x3, 0x3, 0xc00018e000)
/home/runner/work/memplot/memplot/cmd/memplot.go:86 +0xfe
created by main.main
/home/runner/work/memplot/memplot/cmd/memplot.go:80 +0x4e8
This is a second issue I noticed after a few tests of memplot. I initially specified the length of time I expected Python to take to generate an image at my target resolution (~1000s). Memplot ran for about six seconds and then stopped. I thought maybe I had specified too long of a time, so I tried it again with -dur 0. This time it ran for about 220 seconds and then stopped again. Python was still running with the same PID, so I just restarted memplot. I had to run it manually four more times, when it stopped at ~550, 27, and 64 seconds (the last run ended as expected when I terminated python).
MacBook Pro M2 Max 64GB
MacOS 13.4b2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.