GC.Collect()

2024-04-06

好吧,我已经读过几个有关它的主题,但就这样吧。假设我有一个应用程序,基本上我会时不时地单击一个按钮,几分钟内会发生很多事情,然后它可能会再空闲一个小时,或者可能只是一分钟。在这一切结束之后,调用 GC.Collect 不是一个很好的情况吗?我的意思是,我确实知道就在那一刻我不会使用我的应用程序,GC 无法猜测它。


我发现有几个人极端地不建议调用 GC.Collect。

GC.Collect 的存在是有原因的,以下是我关于何时以及为何调用 GC.Collect 的建议。

  1. 一般来说,不用担心调用它,GC 本身调整得很好并且会做正确的事情。

  2. 有时,您最终会遇到这样的情况:您确信现在是调用它的正确时间,您上面描述的情况正是调用它的正确时间,事实上 Asp.Net 在某些点调用 GC.Collect与你所描述的类似。

  3. GC 很聪明地调用 GC.Collect,如果你调用了 GC.Collect,GC 可以覆盖你的决定并且仍然不收集(你必须在调用 GC.Collect 时设置一个标志来选择此行为),这是推荐的调用 GC.Collect 的方式,因为您仍然让 GC 决定是否是收集的好时机。

  4. 不要接受我的建议是调用 GC.Collect 的一般声明,您应该始终避免调用它,除非您真的确定需要调用它,像您所描述的情况正是 GC.Collect 存在的原因。

  5. 调用它的好处是快速释放垃圾,通常你会关心这种情况,如果

    1. 你处于低内存情况并且想要急于收集,如果你处于低内存情况,GC无论如何都会很激进,并且如果机器上的内存压力很高,GC会自动启动
    2. 如果你想避免陷入内存不足的情况并且你想急切地收集。

希望这可以帮助。
Thanks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GC.Collect() 的相关文章

  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 循环访问 VB.NET 中的控件

    我正在创建一个国际象棋程序 它由六十四个黑白背景颜色交替的图框组成 我已经给它们命名了pba1 pba2 pbb1 pbb2 pbc1等等 现在 我只想循环遍历黑色的 例如 我只想循环遍历pba1 pbb2 pbc3等 如何在 VB NET
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 将 IP 地址与 IP 范围匹配?

    我有一个 MySQL 表设置如下 Field Type Null Key Default Extra ipaddress s varchar 15 YES MUL NULL ipaddress e varchar 16 YES NULL
  • 如何为 P/Invoke 声明指向结构的指针?

    我正在尝试使用P Invoke 互操作助手 http clrinterop codeplex com releases view 14120在 C 中调用 C Dll 大部分标头都可以很好地转换 但我遇到了问题 define FULLOCT
  • 如何从Windows任务计划程序(ubuntu bash windows 10)上运行程序

    我需要在 ubuntu bash 中每 5 分钟执行一次任务 并且我喜欢使用 Windows 任务计划程序 我不知道如何编写 bat 文件来在 ubuntu bash 中启动应用程序 我测试了这些但没有用 c Windows System3
  • 找不到模块“socket.io/node_modules/redis”

    当尝试做的时候 var redis require socket io node modules redis 我收到错误 找不到模块 socket io node modules redis 我不明白为什么 我正在运行 Windows 并运
  • 如何在 PHP 中格式化 DOM 结构?

    我的第一个猜测是PHP DOM 类 https www php net dom 与格式输出 https www php net manual en class domdocument php domdocument props format
  • 应用程序在 App Engine 中部署后不会更新

    我刚刚开始接触GAE 一路上已经遇到了问题 当我部署应用程序时 它似乎没有更新它 当我在浏览器中运行它时 它仍然运行旧版本 我的简单代码是 import java io IOException import javax servlet ht
  • WPF:如何使 HeaderedContentControl.Content 适合高度?

    我有一个处于最大化模式的表单 该表单内包含一个 HeaderContentControl 在 HeaderContentControl Content 中 我添加了一个 DockLayout 但问题是 DockLayout 不适合表单高度
  • 为什么我的 JavaScript 代码收到“请求的资源上不存在‘Access-Control-Allow-Origin’标头”错误,而 Postman 却没有?

    Mod note 这个问题是问为什么XMLHttpRequest fetch ETC 浏览器上的受相同访问策略限制 您会收到提及 CORB 或 CORS 的错误 而 Postman 则不受此限制 这个问题是not关于如何修复 No Acce
  • 通过 LinkedList 实现撤消/重做功能

    我正在编写自己的 魔方 应用程序 主要班级Cube有18种旋转方式 RotateAxisXClockWise RotateAxisXAntiClockWise 顺时针旋转轴 Y 逆时针旋转轴 Y RotateAxisZClockWise R
  • 单击按钮后更改键盘布局

    我正在开发一个 Android 应用程序 并且我有一个EditText和一个二RadioButtons A and B 我想做的是 When RadioButtonA 已选中 我想更改键盘布局以使用 完成 按钮显示它 当 的时候RadioB
  • 设置电子邮件正文 HTML 格式

    我将如何让正文以 HTML 格式工作 我需要添加什么以及我需要添加哪一行 我试过 MailMessage IsBodyHtml true 但这对我不起作用 这是这样做的方法吗 该代码应该替换另一行还是应该单独占一行 using System
  • 有没有简单的方法可以在 C# 中创建方法并动态设置其主体?

    我将方法体保存在字符串中 我想动态创建方法 但我不知道 如何设置它的身体 我看到使用 CodeDom 的方式非常乏味 我看到使用 Emit 和操作码 有什么方法可以使用字符串变量中的现成代码吗 string method body retu
  • 使用 $ 和字符值动态选择数据框列

    我有一个由不同列名组成的向量 我希望能够循环每个列名以从 data frame 中提取该列 例如 考虑数据集mtcars以及一些存储在字符向量中的变量名称cols 当我尝试从中选择一个变量时mtcars使用动态子集cols 这些工作都不是
  • 主窗口关闭时 QWidget 不会关闭

    我正在尝试创建一个主窗口 QWidget 当单击按钮时它会打开一个新的 QWidget 但是当我关闭主窗口时 最近打开的 QWidget 不会关闭 main cpp QApplication a argc argv MainWindow w
  • 有没有 recaptcha v2 关闭事件?

    我用这样的代码渲染 grecaptcha let callback const p new Promise resolve gt callback result gt resolve result grecaptcha render el
  • 使用 SQL Server CTE 扁平化层次结构系列

    寻找 SQL Server CTE 示例来创建层次结构 以便我可以输出所有系列 例如展平每个层次结构 例如 在家谱中 如果根从祖父母开始 我需要每个家庭成员的层次结构列表 其中包含成员详细信息 父母的行详细信息 喜欢 child1 row
  • 模型绑定下拉选择值

    我有一个模型 该模型有一个public List
  • 使用 Python 捕获 Mac OS X 系统音频输出

    我一直在尝试使用 劫持 Mac OS X 系统音频PyAudio http people csail mit edu hubert pyaudio 并在Python中保存为wav 也就是说 我不想从麦克风等输入设备进行录制 我想获取任何或所
  • 如何防止 Visual Studio 或 Docker 更改主机端口号?

    我已经对我的 Web 应用程序进行了 Docker 化 并且可以在 Visual Studio 中运行它 但是 它选择使用的主机端口号并不一致 在哪里将其配置为始终使用相同的端口号 我发现我可以通过编辑来做到这一点launchSetting
  • GC.Collect()

    好吧 我已经读过几个有关它的主题 但就这样吧 假设我有一个应用程序 基本上我会时不时地单击一个按钮 几分钟内会发生很多事情 然后它可能会再空闲一个小时 或者可能只是一分钟 在这一切结束之后 调用 GC Collect 不是一个很好的情况吗