タグ

ブックマーク / ota42y.com (2)

  • Go言語でメモリ上の大きさや配置を調べる

    golangで構造体を定義した場合、 メモリ上にどのように配置されるのでしょうか。 通常意識する必要はありませんが、32bitと64bitで挙動がおかしい場合など、 ごく希に調べる必要に迫られる場合があります。 そのような場合、各要素のサイズや、構造体先頭からのオフセットを調べることで、 メモリ上に構造体がどう置かれるかを調べることができます。 C言語でのsizeofやoffsetofに対応する物が、golangのunsafeパッケージに用意されているため、 これを利用することで構造体の様子を調べることができます。 https://golang.org/pkg/unsafe/ 今回は以下のようなテスト構造体を使い、メモリ上にどのように置かれるかを調べました。 テスト環境はwindows7(32bit)とmac(64bit)になります。 type A struct { flag bool n

  • Railsはアクセスをどう処理しているのか(1)

    ふと、Railsのコントローラーに書いたコードがが実行されるまでに、 何が起きているのか気になったので、全部追ってみようと思います。 まだ全部追い切れてないですが、思った以上に長くなったのでとりあえずメモとして出 してみます。 一部Rails力やRuby力が足りなくて追い切れない部分がありますが(´・_・`) ##準備 rails g controller Trace index create app/controllers/trace_controller.rb route get "trace/index" invoke erb create app/views/trace create app/views/trace/index.html.erb invoke test_unit create test/controllers/trace_controller_test.rb inv

  • 1