gpt4 book ai didi

C# 生产服务器,我收集垃圾吗?

转载 作者:太空狗 更新时间:2023-10-29 20:57:22 25 4
gpt4 key购买 nike

我知道有很多关于此的话题。我读了其中的一些。

我想知道在我的情况下 GC.Collect();

是否正确

我有一个 MMORPG 的服务器,在生产中它日夜在线。服务器每隔一天重新启动一次,以实现对生产代码库的更改。服务器每二十分钟暂停所有其他线程,并序列化当前游戏状态。这通常需要 0.5 到 4 秒

序列化后 GC.Collect(); 是个好主意吗?

显然,服务器不断地创建和销毁游戏元素。

我会在性能或内存优化/使用方面获得显着提升吗?

我不应该手动收集吗?

我读到过如果在错误的时刻或过于频繁地使用收集会很糟糕,但我认为这些保存都是收集的好时机,而不是那么频繁。

服务器是framework 4.0

更新回复评论:

我们随机遇到服务器卡住,有时,出乎意料的是,服务器内存使用率会越来越高,直到达到服务器处理任何网络操作所需时间过长的程度。因此,我正在考虑很多不同的方法来解决这个问题,这是其中之一。

最佳答案

垃圾收集器最清楚何时运行,您不应该强制它。它不会提高性能或内存优化。如果需要,CLR 可以告诉 GC 收集不再使用的对象。

对更新部分的回答:强制收集并不是解决问题的好办法。您应该更深入地查看代码以找出问题所在。如果内存使用量意外增长,您可能会遇到未正确处理的非托管资源问题,甚至是托管代码中的“泄漏代码”。

还有一点。如果调用 GC.Collect 解决了问题,我会感到惊讶。

关于C# 生产服务器,我收集垃圾吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com