- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在采访中,我被要求想出一种方法来确保 c# 中的代码块可以在一致的时间运行以满足假设的时间要求。面试官提到,一种方式是在代码块执行之前调用垃圾收集器进行收集,这样可以大大降低在该代码块期间GC再次运行的可能性。它被应用于医疗设备的基于时间的精确测量,其中垃圾收集会影响这些测量。
这对我来说很有意义,但我找不到任何支持它的信息。我审查的普遍共识是永远不要调用 GC.Collect(),异常(exception)情况不包括这种情况。
运行 GC.Collect() 真的可以很快降低它运行的可能性吗?这是使用 .net 框架执行此操作的正确方法吗? GC.Collect() 是否也为其他 CLR 程序收集,还是仅适用于当前进程?
最佳答案
Jared 的回答当然非常好。补充几点:
Can running GC.Collect() truly reduce the probability of it running anytime soon?
是的。
Is this the right approach to do this using the .net framework?
我不希望具有对人类生命安全至关重要的功能的软件的正确性取决于对收集器未记录行为的概率猜测。 p>
就是说:您应该在收集之后执行 WaitForPendingFinalizers。请记住,终结器在它们自己的线程上运行,这可能会占用处理器时间。
Does GC.Collect() collect for other CLR programs too or is it only applicable to the current process?
收集会清理当前进程中的托管内存,因此如果您在一个进程中有多个应用程序域,则在一个应用程序域中进行收集会在其他应用程序域中进行收集。它不会跨进程。
关于c# - 强制 GC.Collect() 减少在时间敏感代码期间运行的机会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15711627/
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我有 2 个不同的 View 设置 View 和默认 View 我无法将 uiswitch 值传递给默认 View 开关在 NSUserDefaults 中存储位置 设置 View .m - (voi
我猜大多数内置的随机生成器会返回类似这样的内容: [0.0, 1.0) 所以如果我想要 50% 的机会,我会使用这样的东西: if random() < .5 或类似的东西: if random()
有没有办法使用合作伙伴 WSDL 创建机会?我在网上看到的唯一示例是使用 Enterprise WSDL 创建,但它们特定于组织。 在我提到的其他链接中.. http://www.salesforce
背景 我正在使用支持向量机对不平衡类进行二元分类(即我的训练集中正负标签的比例约为 100)。我想优化以下参数:m(我从训练数据中采样的正标签与负标签的比率)、w(类权重)和 SVM 参数 C。 问题
我想根据百分比随机生成 YES 或 NO 所以我想“滚动”并有 25% 的机会击中 YES,75% 的机会击中 NO 是否希望有人能为我指出正确的方向,以最好的方式做到这一点,也许是一些文章或其他什么
我是一名优秀的程序员,十分优秀!