none
.net 在短时间内大量请求网络资源的垃圾回收策略

    问题

  • .net 在短时间内大量请求网络资源时候,会产生大量缓存,这些缓存(垃圾)即使使用gc.collect()依旧需要一段时间才能被GC回收,这样会导致应用程序内存占用越来越大,请问如何能够及时回收这些垃圾,并且保证应用程序内存占用在可空范围内?谢谢

    Who Dares Wins

    2017年5月2日 7:51

答案

  • 1 短时间内大量请求网络资源时候,会产生大量缓存

    请问下缓存是说的什么,临时文件缓存对系统性能没有影响,内存缓存需要用using模式及时释放网络连接。

    2 避免直接调用GC.Collect,主动调用GC是99%的情况下都应该避免的事情。

    3 能够及时回收这些垃圾,并且保证应用程序内存占用在可空范围内?

    这个问题可以用memory profiler探测一下应用程序,即可知道是什么原因,需要具体问题具体分析,常见的原因,比如创建大量的对象,频繁的字符串拼接(用字符串相加,而没有用stringbuilder),用工具跑一下即可知道,原因也很容易分析找到并解决。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 周 靖添 2017年5月3日 4:15
    2017年5月2日 10:07

全部回复

  • 1 短时间内大量请求网络资源时候,会产生大量缓存

    请问下缓存是说的什么,临时文件缓存对系统性能没有影响,内存缓存需要用using模式及时释放网络连接。

    2 避免直接调用GC.Collect,主动调用GC是99%的情况下都应该避免的事情。

    3 能够及时回收这些垃圾,并且保证应用程序内存占用在可空范围内?

    这个问题可以用memory profiler探测一下应用程序,即可知道是什么原因,需要具体问题具体分析,常见的原因,比如创建大量的对象,频繁的字符串拼接(用字符串相加,而没有用stringbuilder),用工具跑一下即可知道,原因也很容易分析找到并解决。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 周 靖添 2017年5月3日 4:15
    2017年5月2日 10:07
  • 非常感谢

    Who Dares Wins

    2017年5月3日 4:14