質問

思考の違いはメモリーモデルを使います。純CLR/JIT x86/x64/ia64.いのとでは幾分異なるx86、ia64(指示順序を変更、削除等)、 げたいと思いましたが、参考の違いはx86およびx64.

しているアプリケーションを目指しても非常に厳格な遅延の数字を明らかにし、実x86こともにx64(エクスペディアのキャンセルにia64).っただけに頼ら一部資料のx86JIT実施、まだ比較的安全にx64がけることができるプログラミングのゆia64JIT(必要とする幅広い分野ですvolitileと記憶障壁を挿入するのに数えましょう。

おかげさまの事前の任意のポインタ.

役に立ちましたか?

解決

二条ます。純記憶モデルである以上それぞれの端末ウィンドウ間でやモデルにちなみ):

ジョーイヤーの書籍 並行プログラミングWindows,最寄りのコンビニエンスストアに関する情報源。

他のヒント

NETのメモリモデルは、ECMA規格ISO / IEC-23271に規定されています。具体的にパーティションIで:概念およびアーキテクチャ、章12.6「メモリモデルと最適化」。

この標準は、JITがで動作することができる境界を定義しています。あなたはアーキテクチャに中立になりたい場合は、この標準に従うとx86 / x64のののJITのいずれかの仕様を利用べきではありません。

またx64のは、x86への進化であり、それはすべてのx64準拠プロセッサのベースラインとして定義される追加の命令、レジスタ、いくつかの拡張(SSE2)の大部分が構成されています。追加のアドレス空間と、追加のアドレッシングモードを除いて、(命令ポインタ相対的なデータアクセス。)メモリモデルにほとんど変化がなかっですので、のx86 JITのために最適化すること、あまりにもx64の上で良い結果が得られるはずです。

これは、あなた、あなたはあまりにも低レベルかもしれないが、一部の古いAMD 64ビットCPUはCMPXCHG16Bを持っていません ()あなたは、ハードウェアの非ブロッキング命令としてそれに頼っていた場合ます。

また、があるように思われますあなたは非常に低レベルのコードを実行している場合は目を維持する必要がありので、関連する可能性があるC ++ のメモリモデルの変更ます。

CLRによって「指定した」メモリモデルには、少なくともにまでさかのぼる<のhref = "http://blogs.msdn.com/cbrumme/archive/2003/として公然と議論(マイクロソフト内の議論の継続的なトピックです5月17日/ 51445.aspx」REL = "nofollowをnoreferrer"> 2003年に)。サイドノートクリスBrummeはx64ののモデルは、私が引き受けるれたx86と同じであることをその記事で述べたようCLRの目的のために正確な文はコードをホストされています。

ターゲットユーザーが明示的にItaniumベースが含まれていない限り、

私は単純にフォールバック、遅いがシンプルで安全を含め、そのアーキテクチャの実装は、正確には十分だろうと思うだろう。お使いのソフトウェアは、そのプラットフォーム上で壊れていることを示す必要が、それが遅くフォールバックモードで動作していることだけで、その後はありません。人々はその後真剣プラットフォームを使用したい場合は、そのの多くのの緩いモデルにコーディングすることができます。

そう1上の任意のリリースモード試験は、他の代表とその逆ではない(有意そう3.5 SP1以降)のx64 JITは、x86のJITとは異なることに留意されたいです。試験適宜

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top