2012-05-05 10 views
0

私はEntity Framework Code Firstを使用します。私のエンティティフレームワークでモデルを持つCFよりもデータ型がintと文字列より少ないメモリ消費

public class Stop 
{ 
    [Key] 
    public int StopID { get; set; } 
    public string StopCode { get; set; } 
    public string StopText { get; set; } 
    public string Street { get; set; } 
} 
  1. それはint型ではないキーが、少ないメモリ消費量を持つことが可能です:ここで

    私はモデルを持っていますか?バイト? int16?

  2. 文字列のメモリ消費を抑えることはできますか?文字列[20]?

問題は私がWCFサービスを使用してデータを転送することであり、妥当なサイズを超えています。

おかげ


ここでUPDATE

は転送さ一般的なデータのスクリーンショットです:

enter image description here

確かに一つのこと:私は2116の項目は上記のに似て転送していスクリーンショット。転送されるデータのサイズを計算しようとしましょう。私は各項目に20以下の文字を持っています。私は216項目を持っていますので、20 * 2116 = 42320 >>私のweb.config(maxBufferPoolSize)には600000未満が設定されています!ここで

は私の設定です:

 <binding name="WSHttpBinding_IRequestService" closeTimeout="00:01:00" 
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
     bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferPoolSize="600000" maxReceivedMessageSize="600000" messageEncoding="Text" 
     textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
     maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     <reliableSession ordered="true" inactivityTimeout="00:10:00" 
     enabled="false" /> 
     <security mode="Message"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" 
      realm="" /> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" 
      algorithmSuite="Default" /> 
     </security> 
    </binding> 

任意のアイデア?

答えて

0

異なるデータ型を使用することは役に立ちません。

データは転送時にテキストとしてシリアル化されるため、クラスの整数である"42"という文字列は、クラス内のバイトである文字列"42"とまったく同じ長さになります。これは送信される変数の実際の値だけです。したがって、文字列に2 GBも含めることができても、文字列を送信するたびに2 GBが送信されるわけではありません。

だから、あなたのデータを大きくするものを正確に見てください。たとえば、あなたが考えるよりも多くのオブジェクトを転送しますか?

+0

確かに正しいと思います。何故600000(Web.ConfigのmaxBufferPoolSize)が十分でないのか理解できないので、データが転送されるのは変です!私はあなたの詳細とスクリーンショットを表示するために私の質問を更新しました。ありがとう。 – Bronzato

関連する問題