ブックマーク / 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

    shnkkb
    shnkkb 2016/04/14
  • golangでcronを使う

    cronというライブラリがあるので、それを使うととても簡単です。 なお、終了すると当然ながら実行しないので、 time.Sleep等で処理を止めておく必要があります。

    shnkkb
    shnkkb 2015/08/27
    “for { time.Sleep(10000000000000) fmt.Println("sleep") }”
  • 1