BT

GoogleのGoが高速化

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2014年7月1日. 推定読書時間: 1 分 |

原文(投稿日:2014/06/21)へのリンク

3か月ほどのベータ期間を経て、Go 1.3がリリースされた。1.2から言語機能に変更はないが、さまざまな性能改善、Native-Clientでのコマンドラインプログラム実行サポート、その他の強化がなされている。

最も興味深い性能および実装変更の一部を以下に挙げる。

  • Go routineスタックは古い "segmented" モデルの代わりにcontiguousモデルを使うようになった。
  • GCが高速になった - 並列スイープアルゴリズムを使い、よりよい並列化と巨大なページを持つことで、GC停止時間を50-70%削減した。スタック上の値についても動作がpreciseになった。
  • ランタイムがdeferを効率よく扱うようになった。
  • Race detectorが約40%高速になった。
  • Regexp (正規表現パッケージ) に、特定の単純な表現を高速化するもう1つの1パス実行エンジンが導入された。
  • sync.Pool - この新しい型は、システムによってメモリをキャッシュを実装する効率のよい仕組みを提供する。そのメモリはシステムによって再利用できる。
  • 小さなマップのイテレーションの順序が一定ではなくなった。これは開発者がマップのイテレーション順序に依存したコードを書くのを避けるためだ。そのようなコードは一部のシステムでしかうまく動かない。

ツールの改善も含まれている。

  • godocがインデックス化したコードの静的解析を実行できるようになった。
  • misc/benchcmp (ベンチマークツール) がGoプログラムとして書き直された。
  • コンパイラとリンカがリファクタリングされた。命令選択フェーズがコンパイラに移されたことで、大きなプロジェクトの増加するビルド時間を高速化できる。
  • gcツールチェインが 32-bitおよび64-bit Intelアーキテクチャ上のNative Client (NaCl) 実行サンドボックスをサポートするようになった。Go 1.3が生成するバイナリはまだGoogle Chromeで直接実行することはできないことに注意。

crypto/tlsライブラリに関するセキュリティ修正もなされている。

詳しくは、リリースノートにある変更を参照しよう。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT