Required tools for playing around with memory:
hexdumpobjdumpreadelfxxdgcore
| require 'pry' # gem install pry | |
| # Pass in an enumeration of data and | |
| # (optionally) a block to extract the grouping aspect of the data. | |
| # | |
| # Optional: sort_by lambda (operates on group key and count) | |
| def puts_hist(data, sort_by:nil, &blk) | |
| data = data.map(&blk) if blk | |
| counts = data.each_with_object(Hash.new(0)) {|k,h| h[k]+=1} |
| # 2.4.2p198 on MBP 2017 i7 | |
| user system total real | |
| -- YAML size=86 delta_vsz=0 delta_rss=2092 | |
| 17.730000 0.060000 17.820000 ( 17.851288) | |
| -- JSON size=83 delta_vsz=0 delta_rss=4 | |
| 0.850000 0.000000 0.870000 ( 0.892370) |
| #!/usr/bin/env bash | |
| declare -i last_called=0 | |
| declare -i throttle_by=2 | |
| @throttle() { | |
| local -i now=$(date +%s) | |
| if (($now - $last_called >= $throttle_by)) | |
| then | |
| "$@" |