none
CallContext存储数据的性能问题 RRS feed

  • 问题

  • 我们知道CallContext可以用来存储一些在方法调用和在当前线程之间共享的数据。如果CallContext存储一些比较大的数据,例如超过16KB~64KB的资料,对性能有没有较大的影响?

    谢谢!


    Dreamwinter
    2010年5月20日 2:51

答案

  • 没有发现有什么影响。CallContext 的资源仍然存在在托管堆上。也就是在内存里。无论该信息存放在内存何处 (非托管的应用程序内存/托管的 heap/stack),其访问速度是非常快的。寻址的性能损耗可以忽略。
    Mark Zhou
    2010年5月20日 10:41
  • 你好!

         如果你保存了大量的数据,是会影响性能的,这些数据占用的内存在应用程序域生命周期内都不会释放啊!

          这个道理就像你把一个很大的对象定义成静态的一样!


    周雪峰
    2010年5月20日 10:54
    版主

全部回复

  • 没有发现有什么影响。CallContext 的资源仍然存在在托管堆上。也就是在内存里。无论该信息存放在内存何处 (非托管的应用程序内存/托管的 heap/stack),其访问速度是非常快的。寻址的性能损耗可以忽略。
    Mark Zhou
    2010年5月20日 10:41
  • 你好!

         如果你保存了大量的数据,是会影响性能的,这些数据占用的内存在应用程序域生命周期内都不会释放啊!

          这个道理就像你把一个很大的对象定义成静态的一样!


    周雪峰
    2010年5月20日 10:54
    版主