BT

Go言語1.10でツールチェーンとパフォーマンスが改善

| 作者: Sergio De Simone フォローする 12 人のフォロワー , 翻訳者 編集部T フォローする 0 人のフォロワー 投稿日 2018年2月22日. 推定読書時間: 2 分 |

原文(投稿日:2018/02/20)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

Goの最新リリースには、言語レベルでの大きな変更は含まれていないが、ツールチェーン、Goランタイム、および標準ライブラリにいくつかの改良が加えられている。

Go 1.10における大きな改善点の1つは、ビルド結果のキャッシュと、より適切に期限切れのパッケージを検出することである。特に、Goでは、ファイルをいつ再コンパイルすべきかを決めるために、ファイル変更時間は関係なくなった。代わりに、コンパイルされたパッケージに格納されたファイル内容、ビルドフラグ、およびメタデータに基づいて決める。これにより、リビルドを強制するために使用された-aフラグが不要になった。ビルドされたパッケージのキャッシュは、特にビルドフラグやソースコードバージョンやブランチの間を行き来する場合に、ビルド時間をさらに向上させることを目的としている。

同様に、go testコマンドは現在、成功したテストのテスト結果をキャッシュする。go testでは、テスト実行ファイルとコマンドライン引数が以前のテスト実行で使用されたものと一致することが検出されるたびに、キャッシュされたテスト結果が出力される。

Go 1.10ランタイムでは、LockOSThreadUnlockOSThreadの呼び出しのネストを許可することで、Linuxネームスペースで安全に実施できることがわかった。つまり、以前のバージョンに影響を与えた障害なく、コンテナでもgoroutineを使えるようになった。

さらに、Goランタイムによって、より長いスパンにおいて、CPU使用率を小さくすることで実行時間を短縮すると、ガベージコレクションの割り当ての遅延が短縮された。これは、全体のCPU消費には影響を与えない。

最終的には、Goのパフォーマンスは、ガベージコレクタの改善、標準ライブラリの最適化、コード生成の改善によっても利益を得るはずである。

メジャーリリース番号が変更されないことが予想されるので、Goチームによると、Go 1.10は以前の1.xバージョンでコンパイルできるプログラムの大部分と互換性を維持する。

Go 1.10に加えられた変更の数はここで列挙するには多すぎるため、詳しくは公式のリリースノートを見逃さないでください。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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