A Geiger counter for allocations
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Luke Champine d87f9d0a02
Merge pull request #3 from damienstanton/dev
4 months ago
LICENSE initial commit 1 year ago
README.md Blame beep for everything 1 year ago
geiger.go Add more geiger 1 year ago
geiger_test.go Add more geiger 1 year ago
go.mod Use modules. 4 months ago
go.sum Use modules. 4 months ago



GoDoc Go Report Card

go get lukechampine.com/geiger

Inspired by this tweet. Just call go geiger.Count() at the top of your main function. Don't worry, if you start tasting metal, you're probably just delusional.

This package is in a pretty unpolished state. First of all, it emits a constant tone, not a series of clicks like a real Geiger counter, because I couldn't figure out how to get the beep package to click the way I wanted. (EDIT: fixed, thanks @klauspost!) Second, the package itself incurs a non-zero number of allocations per second (~100 on MacOS, presumably different on other platforms) which throws off the reading. Third, it's completely unconfigurable: you can't adjust the "sensitivity," and you can only measure the number of objects allocated per second (as opposed to, e.g., the number of bytes allocated per second).

Still, I think the general idea of "use sound to alert the programmer that they're doing something stupid" has merit. If enough people agree, maybe we can work together to refine it into an actually useful tool.


This package uses beep to play audio. If you can't hear anything, please check the beep issue tracker (and open issues there, if necessary) rather than on this repo. I know basically nothing about audio interfaces, so I'm not going to be able to help you!