ホームページ > バックエンド開発 > Golang > 実際、Go の型アサーションと型スイッチはどれくらい速いのでしょうか?

実際、Go の型アサーションと型スイッチはどれくらい速いのでしょうか?

Mary-Kate Olsen
リリース: 2024-12-09 07:30:12
オリジナル
507 人が閲覧しました

How Fast Are Go's Type Assertions and Type Switches, Really?

Go の型アサーションと型スイッチ: パフォーマンスへの影響

型のイントロスペクションは、オブジェクトの実行時の型を調べるための一般的な手法です。ただし、パフォーマンスへの影響に関して懸念が生じます。この記事では、Go の型アサーションと型スイッチの速度を調査し、他の型チェック手法と比較します。

型検出パフォーマンス

Go では、次のように入力します。アサーションと型スイッチは、実行時にオブジェクトの型を識別する便利な方法を提供します。これらのメカニズムが C/C などの言語でパフォーマンス コストを引き起こす可能性があることは知られていますが、Go でのその影響については明らかな点が限られています。

ベンチマーク評価

パフォーマンスを評価するには型アサーションと型スイッチのベンチマーク テスト スクリプトを作成しました (次の場所で入手可能です)。 http://play.golang.org/p/E9H_4K2J9-)。テストでは、次の 4 つのメソッドを比較しました。

  • Int メソッド: 既知の型での直接メソッド呼び出し。
  • インターフェイス: メソッド呼び出しInterface.
  • Type Switch: オブジェクトのタイプを識別して呼び出すための Type スイッチ適切なメソッド。
  • 型アサーション: 基になる型を取得してメソッドを呼び出すための型アサーション。

結果と分析

ベンチマーク結果は、4 つの方法すべてが同等の性能を備えていることを示しています。速度:

  • 更新結果 (2019 年 10 月 9 日):

    • Int メソッド: 1.67 ns/op
    • インターフェース: 2.03 ns/op
    • タイプ スイッチ: 1.70 ns/op
    • タイプ アサーション: 1.67 ns/op
  • 前の結果 ( 1月19日2015):

    • Int メソッド: 2.71 ns/op
    • インターフェイス: 2.98 ns/op
    • タイプ スイッチ: 16.7 ns/op
    • 型アサーション: 13.8 ns/op

結論

予想に反して、Go の型アサーションと型スイッチは他の型と比較してパフォーマンスへの影響が最小限ですチェック方法。これは、開発者が実行時のコストをあまり気にせずにこれらの手法を使用できることを意味します。当社のベンチマーク テストでは、4 つの方法すべてが同等の速度を示し、パフォーマンスが重要なアプリケーションでの使用に適していることが実証されました。

以上が実際、Go の型アサーションと型スイッチはどれくらい速いのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート