1. ホーム
  2. .net

[解決済み] 封印されたクラスは、本当に性能上のメリットがあるのでしょうか?

2022-04-27 17:57:34

質問

私は多くの最適化のヒントに出会いましたが、それはあなたが余分なパフォーマンスの利点を得るためにシールドとしてクラスをマークする必要がありますと言う。

性能差を確認するためにいくつかのテストを実行しましたが、何も見つかりませんでした。私は何か間違ったことをしているのでしょうか?シールされたクラスがより良い結果をもたらすケースを見逃しているのでしょうか?

どなたか、テストを実施して違いが見られた方はいらっしゃいますか?

勉強になります :)

どのように解決するのですか?

JITterは、シールされたクラスのメソッドに非仮想的な呼び出しを使用することがあります。

呼び出しのタイプ、仮想/非仮想に関する複雑なルールがあり、私はそのすべてを知っているわけではないので、その概要を説明することはできませんが、sealed classes and virtual methodsでググれば、この話題に関するいくつかの記事を見つけることができるかもしれません。

このレベルの最適化で得られるパフォーマンス上の利点は、最後の手段と考えるべきで、コードレベルで最適化する前にアルゴリズムレベルで常に最適化する必要があることに注意してください。

このことについて触れているリンクを一つ紹介します。 封印されたキーワードをめぐる戯言