タグ

ブックマーク / hnakamur.github.io (4)

  • goで書いたコードがヒープ割り当てになるかを確認する方法 · hnakamur's blog

    2018-01-30 はじめに Allocation Efficiency in High-Performance Go Services · Segment Blog という記事を読みました。素晴らしいのでぜひ一読をお勧めします。 この記事は自分の理解と実際に試してみた結果のメモです。 一番のポイントは go build -gcflags '-m' のようにオプションを指定してビルドすればコードのどの箇所でヒープ割り当てが発生したかを確認できるということです。 pprof や go test -benchmem でもヒープ割り当ての発生回数は確認できますが、上の方法ではコードのどこ(何行目の何カラム目)でヒープ割り当てが発生したかとなぜ発生したかの理由を確認できます。 元記事の内容メモ 冒頭にあげた記事を読んで私が理解した内容のメモです。 元記事の全ての内容を書いているわけでないので、元

    zetamatta
    zetamatta 2018/01/30
    俺はそこまで考えないことにした(気にしだすと、昔みたいに(C++ で)new したらヒープが断片したら負け病になってしまう)
  • ブログ記事「Go言語(Golang) はまりどころと解決策」についてのコメント · hnakamur's blog

    2016-08-02 Go言語(Golang) はまりどころと解決策の記事についてのコメント記事を誰かが書くだろうと思ってスルーしてましたが、見かけないので書いてみます。 ただし私はGo言語を使って開発していますが、言語自体を詳細に知るエキスパートでは無いです。Go言語にかぎらず個人的にはややこしいところにはなるべく近づかないスタンスなので、詳しい方から見ると物足りないかもしれません。そう感じた方は是非ブログ記事なりを書いていただけると嬉しいです。 interface とnil (Goのinterfaceは単なる参照ではない) 特にコメントはなくてそのとおりだと思います。 Frequently Asked Questions (FAQ)に加えて Effective Goも早めに読んでおいたほうが良いと思います。 またnilに関する文献としては Understanding Nil // Sp

    zetamatta
    zetamatta 2016/08/06
  • Go言語用のメモリマップトファイルのライブラリを探してみた · hnakamur's blog

    2015-06-03 ふとGo言語でメモリマップトファイルを扱えるライブラリってあるのかなと気になったので探してみました。 標準ライブラリ Goのホームページでmmapで検索してみるとUnix系では実装があるみたいです。 Did you mean: Mmap と表示されているのでクリックしてみるとsyscallパッケージにMmapがあることがわかりました。 Munmapで検索してみるとこちらはMmapよりは実装されているOSが少ないです。syscallパッケージにMummapもあります。 Msyncで検索してみると5件ヒットしますが、未実装となっていました。 また、syscallパッケージにMmapとMunmapがあるといっても、Windowsでは実装されていません。 github.com/edsrzf/mmap-go ソース: edsrzf/mmap-go GoDoc: mmap - G

    zetamatta
    zetamatta 2015/06/13
    Linux系だけかと思ったら、Windowsのものも調査してる。GJ
  • lua, V8, ruby, mrubyでfib(39)の実行時間比較 2013-03-12版 · hnakamur's blog

    2012-05-04 2013-03-13追記 この記事が@matzさんにツイートされたのを受けて、各処理系の最新版で再度試してみました。 lua, V8, ruby, mrubyでfib(39)の実行時間比較 2013-03-12版をご参照ください。 mruby (軽量ruby) ソース公開 | quredo-styleを見て、自分の環境でlua, luajit, V8, ruby, mrubyで試してみた。 テスト環境 Model: MacBook Air 13-inch, Mid 2011 CPU: 1.7GHz Intel Core i5 RAM: 4GB 1333MHz DDR3 OS: Mac OS X Lion 10.7.3 lua fib.lua function fib(n) if n < 2 then return n end return fib(n-2) + fib

    zetamatta
    zetamatta 2013/03/13
    V8 と luajit 速いな!
  • 1