2012-02-17 10 views
0

私はプレゼンテーションプログラムによって消費されるサービスを作成しています。私はクラスまたは構造体として自分の型を定義するフォークにあります。 .NETは1つのスタック(値の型を格納するための)を各dllとexeまたはプログラムごとに1スタック作成しますか?プログラムごとに1つのマネージド・ヒープを作成しますが、スタックは確実ではないと確信しています。私を助けてください。.Netは1つのスタック(値の種類を格納するために)ごとにdllとexeまたは1スタックを作成します

おかげで、 Omkar

+6

重要ですか?これは_implementation_詳細です。あなたは参照型と値の型がどこになるのかを知っていると仮定しています。 Eric Lippertのブログ記事[The Stack is Implementation Detail](http://blogs.msdn.com/b/ericlippert/archive/2009/04/27/the-stack-is-an-implementation-detail.aspx)を参照してください。 )。 – Oded

+0

はい、問題があります。あるアセンブリの関数から別のアセンブリへ構造体を渡す必要がある場合、パフォーマンスには不十分な値がすべてコピーされます。 – om471987

+2

あなたのボトルネックとして特定したパフォーマンス上の問題がありますかOdedによって完全に修飾された*実装の詳細*に関連するアプリケーション? –

答えて

7

第1にThe Stack Is An Implementation Detail

プロセスごとに1ヒープ* 1つのスタックがありますが、スレッドスレッドごとに1つのスタックがありますが、これに気を付けるべきではありません。クラスと構造体の間で選択する際には使用しないでください。

When to use struct in C#?

を参照してください(*)まあ、1はとにかくヒープを管理していました。

+0

記事「スタックは実装の詳細です。あなたは@ジャスティン! – kingdango

2

1つのコールスタックが異なるアセンブリからの呼び出しを含めることができ、各スレッドはそれ自身のスタックトレースが明らかにスレッドごとに1つだけのスタックがありましたので。

関連する問題