2009-04-05 2 views

答えて

1

これを置き換えるものはわかりませんが、CLR via C#は、CLRの仕組みや時間とリソースを多く消費する深い知識を提供します。

2

私はそうは思わないし、更新されたバージョンがそれほど違うとは思わない。

タイミングの数値は、試験機がおそらくより早く、より高速になることがありますが、テストの関係はほぼ同じです。

この記事は、管理されたコードでの一般的な操作の低レベルの影響についてのものであり、Articeが書かれてからあまり変わっていません。新しいバージョンのフレームワークには多くの機能が追加されていますが、それはすべてC#1.0以降で使用可能なプリミティブに基づいています。

16

いいえ、私はそれを更新したことはありませんが、適切な塩の穀物で取ったと思います。記事の一般的なアドバイスと大部分のルールは、今日でもうまくいきます。 (生成されたコードが変更され、そしてどのようにマイクロプロセッサがどのように変わったか、どのように変化したかを原始時代見るために、今日の実験を繰り返すように興味深いものになるだろう、と述べた。)

最もプリミティブの相対的なオーバーヘッドが勝っ

多くは変わったが、一部は劇的に変わっただろう。たとえば、非静的デリゲートの呼び出しの劇的な改善が劇的に改善されました(正しくリコールすれば.NET 2.0で)。私は、2003年に非常に高額であると報告したため、今日の開業医が呼び出すのを避けるために彼女の方法から脱却するとは思っていません。

多くのコンパイルされたコードシーケンスが変更されていると思います。新しいJITコンパイラの最適化が行われます(マイクロベンチマークではあまりうまく表示されません)。 JIT'dとNGENコードの別の組み合わせ(NGENは私の記事では探究されませんでした)。ガベージコレクタのような主要なサブシステムは長年にわたり絶えず調整されてきました。

メモリシステムエフェクトが個々のマネージコードプリミティブ操作のコストを無駄にする可能性について、私は注意深くアドバイスします。また、多くの変更点があります。たとえば、03-04の多くのCLRパフォーマンス作業は、NGENのシステムアセンブリの作業セットの動作を改善しました(汚いプライベートページの最小化など)。

もちろん、この記事のテーマは、あなたのコードのパフォーマンスを注意深く、注意深く測定することが不可欠であり、そのテーマは時代を超越しています。

ちなみに、私はいつもトップ200にすぎない.NET BCLメソッドの予想される/典型的な時間とスペースのコストについてのフォローアップ記事を作成したいと思っていました。我々が.NETのパフォーマンスに取り組んでいることが分かった。それは、実際の実践者が野生で実際に使用しているように、クラスライブラリ/フレームワークの経験的なパフォーマンスをどのように特徴付けるかについて、非常に興味深い考えを導きました...

それを読んでくれてありがとう、 。

p.s.

http://msdn.microsoft.com/en-us/magazine/cc500596.aspx

http://msdn.microsoft.com/en-us/magazine/cc507639.aspx

+1

私はマイクロプロセッサも変更されていることを追加する必要があります:あなたは私の記事を楽しんだ場合は、これらを好きになる - 私はバンスモリソンが、その後、このテーマに偉大な2つのパートMSDNシリーズを書いて参照してください。もちろん、それらは複数のスレッドやコアを提供します。また、CPU設計者は、OOPやJVM/CLRアプリケーションの実行トレースを微調整して、マイクロアーキテクチャを調整し調整することができました。例えば、仮想メソッド呼び出しと短いメソッドコール/リターンの文脈における分岐予測がはるかに優れているため、JITが最適化できないコードの一部が、危険性、ロールバック、またはストールの少ない順不同で実行できるようになります。一部のオーバーヘッドは完全に離れて最適化されます。これにより、マイクロベンチマーキングがはるかに問題となる危険性があります。 –

+0

一部のマイクロプロセッサーは反対方向に動き始めましたが、より順番になるとリテラルレジスタ(PPC、Larabeeなど)に戻ることになりましたが、多くのパイプラインのペナルティが苦しくなりました。 – Crashworks

+0

本当ですか! 「並列化された「スループットソフトウェア」がより経済的に面白くなると仮定すると、「計算のエネルギー効率が計算速度を上回る」傾向が勢いづいているので、これらのより単純なマイクロアーキテクチャ、異種のチップマルチプロセッサでは複雑でシンプルな組み合わせですらあります。興味深いことに、ハードウェアの振り子がスイングすると、VMコードジェンと組織の変更に時間内に反映される可能性があります。ソフトウェアはハードウェアを形作り、その逆も同様です。 –

関連する問題