Weekly PR #13 gometalinter and memory usage in golang struct
linterを入れて欲しいとのissueがあったので、gometalinterというツールを導入し、複数のlinterを対応させました
travisで回すには.travis.ymlに以下の記述が必要です。
supportされているlintツールはここに載っています。
github.com
特に今回注目したものがmaligned
github.com
実は構造体定義で、メンバ変数の順番を気にしないと、メモリのパディングが発生してしまうようです。
そこでmalignedではメモリパディングが発生しないような構造体のメンバ変数定義になっているかどうかを確認します。
web上にはメモリのパディングが発生しないかを視覚的に確認するツールがあるようです。
golang-sizeof.tips