June could have started a little better, beginning with a nasty flu bug that had me bedridden for the better part of a week. But once that was over with arm got several new features and is now tantalizingly close to its 1.4.3 release. Improvements include…
- Menu interface (thanks to Kamran for implementing its first version)
- TorCtl fixes for 2412, 2812, 2065, 1329, 2580, 3406, and 3409
- Newnym option
- Dependency auto-fetching via mirrors with signature checks (issue spotted by Sebastian and Robert)
- Relay setup wizard. This is still in the works and about a week away from completion, but it’s turning out very nicely.
Kamran has made some progress with the arm gui, porting the bandwidth graphs and nearly finishing the log panel. This has slipped quite a bit due to illness and family issues, though the parts that are done look great. For a description and screenshot of his work see his blog posting.
Finally, I dug into arm’s resource consumption and performance. I was able to reduce its memory usage by 12% and the shutdown time’s now instantaneous. However, besides this arm’s about as lean as I can reasonably make it…
- 17.9 MB total memory usage
- 3.0 MB (16.8%) is from the idle python interpretor
- 7.5 MB (41.9%) is from importing the codebase
- 7.4 MB (41.3%) is consumed at runtime, contribution from individual panels being negligible
- Startup time is 0.142 seconds. 0.123 is the baseline startup, with graphing contributing an extra 0.02 seconds (probably from reading the state file for bandwidth prepopulation). On the first startup there’s around an extra second, probably for importing the libraries.
- As for cpu usage, there’s spikes from connection and resource usage fetches but otherwise it’s flat (very little curses or controller activity due to caching and being smart with redraws). Individual panels don’t contribute noticeably to the baseline.