タグ

goに関するtksthdnrのブックマーク (5)

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

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

  • MacでGoのデバッグ環境を構築する

    codesign -s gdb-cert /usr/local/Cellar/gdb/7.7/bin/gdb sudo killall taskgated なお、署名の手順などの詳細は次のページを参照してください。 BuildingOnDarwin - GDB Wiki Installing GDB on OS X Mavericks - Neil Traft あとは、このgdbに、パスを通したり、エイリアスやリンクを張ればよいでしょう。 alias ggdb=/usr/local/Cellar/gdb/7.7/bin/gdb Goでgdbデバッグできるようにする こちらもbrewを用いました。 brew install go そして、環境変数GOROOTをセットしておきます。これは設定ファイルに書いてもよいでしょう。 export GOROOT=/usr/local/Cellar/go/

    MacでGoのデバッグ環境を構築する
  • Big Sky :: quickrun.vimでgoのコーディング効率が数倍になった件

    goを弄ってるといちいち8g(5g?)とか8l(5l?)とかでコンパイル、ビルドする手間が必要なんだけど、これってquickrun.vimの設定で便利になるんじゃないか?と思ったので設定した。 thincaさんバージョンのquickrun.vimを入れた後、vimrcで以下の様に記述する。 let g:quickrun_config = { \  'go': { \    'command': '8g', \    'exec': ['8g %s', '8l -o %s:p:r %s:p:r.8', '%s:p:r %a', 'rm -f %s:p:r'] \  } \} 環境によっては8g/8lを書き換える必要があります。 あとは拡張子goのファイルで<leader>r(mapleaderを設定してなければ\r)で、コンパイル、リンク、実行までやってくれて、まるでスクリプト言語を書いてい

    Big Sky :: quickrun.vimでgoのコーディング効率が数倍になった件
  • Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い)

    Android phone users finally have access to Cruise’s robotaxi service, which is predominately in San Francisco as well as in Austin and Phoenix. The self-driving unit under GM said Tuesday that i

    Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い)
  • inforno :: 個人的Go雑感&amp;メモ

    GoogleGoという新しいプログラミング言語 を出したようで。早速、インストールして軽くドキュメントを流し読みしてみました。 英語なんて読みたくないよ、という人もいるかもしれないし、誰かの役に立つかもしれないので自分用メモおいときます。完全に自分用なんである程度他の言語の知識がある人向けな上、ざっくり流し読みなんで間違ってるかも。 どんな言語? ネイティブコードを吐く、コンパイル型。 速度はCレベル。 GC搭載。ポインタはあるけど、ポインタ演算はできません。 各種アーキに最適化された、それぞれのコンパイラセットを持ちます。例: 6g, 6l : amd64 8g, 8l : i386 linux, mac, naclに対応。 動的型言語と静的型言語のおいしいとこどり。 concurrent処理が組み込まれてます。 個人的雑感 こんな言語設計思想かなあと感じたり とにかく、シンプルな言

    tksthdnr
    tksthdnr 2009/11/13
    googleの新言語
  • 1