【问题标题】:.NET CLR Memory\% Time in GC.NET CLR 内存\% GC 时间
【发布时间】:2009-06-30 01:06:45
【问题描述】:

我正在测试一个应用程序,它可以读取数千个小对象,然后通过远程处理将其发送回客户端。

使用 SysInternals 的 ProcessExplorer 我看到“.NET CLR Memory\% Time in GC”在重负载下大于 50%。

  • 这是否意味着 50% 甚至更多的时间都花在了 GC 上?

  • 如果是这样,我该如何提高性能?一个明显的答案是:不创建这么多对象,但是,我该怎么做呢? “结构”会更好吗?

谢谢

【问题讨论】:

  • 你是如何创建这些对象的?您是一次创建几个,一遍又一遍,还是一次创建数千个?

标签: c# performance


【解决方案1】:

AFAIK 值类型放在堆栈上,引用类型放在堆上。一旦你“超出范围”释放值类型(即结构)比释放堆上的对象(这些是 GC-ed)快得多。

关于GC中的%time,看看here

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2011-06-09
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多