抑制 C# 垃圾回收

2024-04-21

我的应用程序分配大量内存(数百万个小对象,总计几千兆字节)并保留很长时间。

  1. .NET 是否浪费时间检查所有这些数据来对其进行 GC?
  2. 第 2 代 GC(检查所有对象的 GC)多久发生一次?
  3. 有什么办法可以降低它的发生频率或者暂时抑制它的发生吗?
  4. 我确切地知道何时准备好收集大量内存,有什么方法可以对此进行优化吗?我目前正在调用 GC.Collect(); GC.WaitForPendingFinalizers();当时。

更新: 性能计数器“% Time in GC”显示平均值为 10.6%。


除非您可以确认垃圾收集器正在主动降低应用程序的性能,否则您不应采取措施削弱运行时环境的功能。

从你的问题来看,你还没有确认是GC的问题。我严重怀疑确实如此。

仅优化需要优化的内容。

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

抑制 C# 垃圾回收 的相关文章

  • Java 中的 TreeSet 与 C#.net 的等效项

    我有 Java 代码 其中包含TreeSet 我想将代码转换为 C 我可以使用哪个等效集合 如果没有 请提出替代方案 那将是系统 集合 通用 SortedSet
  • 通过 Active Directory 搜索进行有效分页

    在 NET 中使用 Active Directory 搜索进行分页的有效方法是什么 在 AD 中进行搜索的方法有很多 但到目前为止我找不到如何有效地进行搜索 我希望能够表明Skip and Take参数并能够检索结果中与我的搜索条件匹配的记
  • C# 从带引号的字符串中删除分隔符

    我正在编写一个程序 必须从文本文件中带引号的字符串中删除分隔符 例如 Hello my name is world 必须 Hello my name is world 起初这听起来很简单 我认为是这样 但是您需要检测引号何时开始 何时结束
  • 将 LUIS 与 FormFlow 集成

    我创建了一个机器人 里面有一个 FormFlow 现在 如果您输入 我想启动产品 LUIS 将告诉它必须转到哪个对话框 internal static IDialog
  • C# 3 新功能帖子(与 .Net 3.5 功能无关)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Net F
  • 在 Linux 上,在 Eclipse CDT 中使用 gdb 调试 C++ 应用程序,如何向 stdin 输入内容?

    在 Linux 上 我尝试在 Eclipse CDT 中使用 gdb 调试 C 应用程序 例如应用程序applic exe接受一些命令行参数arg1 and arg2它期望一些数据stdin 比如说 取自文件input txt 通常 要在控
  • 如何直观理解C++优先级队列容器比较器中的大于/小于运算符

    我总是对为优先级队列容器定义比较器感到困惑 并且不知道如何理解它 例如 我有一个vector of pair
  • 如何在 VS 2013 的立即窗口中执行 LINQ 和/或 foreach?

    在调试过程中探测当前状态时 立即窗口是非常有用的工具 我了解到 通过使用问号 人们可以在那里做更多的事情 如图所示在这篇文章中 https stackoverflow com questions 32934635 execute metho
  • send() 使我的程序崩溃

    我正在运行服务器和客户端 我正在我的计算机上测试我的程序 这是服务器中向客户端发送数据的函数 int sendToClient int fd string msg cout lt lt sending to client lt lt fd
  • 为什么编译器不对同一翻译单元中的 ODR 违规发出警告

    在同一个翻译单元中 ODR 问题很容易诊断 那么为什么编译器不会针对同一翻译单元中的 ODR 违规发出警告呢 例如在下面的代码中https wandbox org permlink I0iyGdyw9ynRgny6 https wandbo
  • cygwin $'\r':命令未找到错误

    我稍微修改了一个项目 在调试下它运行得很好 当我尝试在不调试的情况下构建它时 它显示错误 无法修复它 make Making all in third party make 1 Entering directory cygdrive c U
  • CGAL:如何有效计算多面体的面面积?

    我有一个多面体 其面是三角形 我知道在 CGAL 中 Triangle 3 类提供了 squared area 方法 通过它我们可以计算三角形的面积 有什么方法可以将其应用到多面体方面吗 或者关于如何计算每个面的面积有什么想法吗 这是一个例
  • OpenXML 如何获取范围内的单元格

    请帮助我获取范围内的单元格 例如从 A 1 到 E 11 都是矩形单元格 目前我的理想是 Worksheet worksheet GetWorksheet document sheetName SheetData sheetData wor
  • 是否有在 Windows 窗体应用程序中以最少的设置使用 CefGlue 或 CefSharp 的示例?

    我 仍然 使用 Visual Studio 2005 并希望将 webkit 浏览器嵌入到 c winforms 应用程序中 最好作为 winforms 控件 我正在寻找 CefGlue 或 CefSharp 的简单示例以及所需的最少 dl
  • 如何防止用户生成的 Sql 查询上的 Sql 注入

    我有一个项目 私有的 ASP net 网站 受 https 密码保护 其中要求之一是用户能够输入直接查询数据库的 Sql 查询 我需要能够允许这些查询 同时防止它们对数据库本身造成损坏 以及访问或更新它们不应该访问 更新的数据 我制定了以下
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • 在一个数据库请求中连接 IQueryable 集合

    我使用实体框架 我需要连接两个集合 例如 IQueryable
  • 使用 C++20 概念避免 std::function

    过去 当我想要回调作为函数参数时 我通常决定使用std function 在极少数情况下 我绝对从不使用捕获 我使用了typedef改为函数声明 因此 通常我的带有回调参数的声明看起来像这样 struct Socket void on re
  • 是一对一的关系不好的策略

    用户始终拥有一个钱包 一个钱包始终属于一位用户 由于我想分离与钱夹相关的属性 我创建了 Wallet 对象并能够跟踪钱交易 我创建了 public Wallet Entity
  • qt 如何知道按钮被点击?

    我正在尝试编写一个程序 用声音进行一些操作 我的问题是我有 3 个播放按钮和 3 个标签 我希望无论我单击 播放 按钮 都应该播放按钮附近标签中名称的声音 我有一个没有任何参数的播放插槽 那么 如何分别连接到每个播放按钮和每个标签呢 实际上

随机推荐

  • c# LOESS/LOWESS 回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道执行 LOESS LOWESS 回归的 net 库吗 最好是免费 开源 端口来自java htt
  • 从 Symfony2 中的实体和存储库登录的正确方法

    在 symfony2 架构中记录来自实体或存储库类的消息或错误的方法是什么 在 symfony1 中 您可以使用单例来杀死小狗 方法是执行以下操作以从任何地方获取记录器 sfContext getInstance gt getLogger
  • 如何在 Vapor 3/Fluent 中记录 SQL 语句?

    看起来在 Vapor 2 中你可以这样做 let query
  • 更改组织模式新一天开始的时间

    我使用组织模式来计时我的工作 有时我会工作几个小时到午夜 例如 我记录的时间从 2013 年 6 月 3 日晚上 10 点开始 到 2013 年 6 月 4 日凌晨 2 点结束 组织模式在凌晨 0 点进行划分 开始新的一天 但如果将 0am
  • Excel创建乘法条件排名

    我试图在此图表中进行有条件排名 On the right you can see the total score and ranking from the Match 1 2 3 sum on line A and C I have a t
  • 使用 Twitter Bootstrap 的水平形式内的普通(垂直)形式

    我想要一个在第一层具有水平布局的表单 但是在一行内可以有一个 内联 表单 我想要一个垂直 默认 布局 有没有一种简单的方法可以实现这一目标 Note form inline没有做我正在寻找的事情 因为它没有将内部标签放在输入的顶部 到目前为
  • Java 中是否有与 StringWriter 等效但内部带有 StringBuilder 的东西?

    我注意到 StringWriter 在内部使用 StringBuffer 但是 如果您不需要同步开销 是否有与 StringWriter 等效的内部使用 StringBuilder 的方法 如果你恰好使用 Apache Commons IO
  • 允许 Rust 格式中未使用的命名参数!() 系列

    Given format red reset text red RED blue BLUE reset RESET 编译器退出并出现错误 error named argument never used gt example rs 1 47
  • 提取后视频帧是颠倒的

    我的问题是 当我使用 opencv 将视频提取到帧中时 有时我得到的帧会翻转 这在我的机器 窗口 和 VM ubuntu 上都发生过 但是我测试的一些视频 帧不翻转 所以 我想知道应该在我的代码中更改 添加哪些因素或哪些内容 以使提取内容无
  • WebSocket 握手:意外响应代码:404

    正在编写我的第一个 websocket 程序并且正在得到 WebSocket 握手 意外响应代码 404 加载网页时出错 我使用的是 JDK 1 7 和 jboss 8 wildfly8 0 有人可以帮忙吗 window onload in
  • 通过代码更改 Vaadin 7 中的主题

    我正在 Vaadin 7 中做一个项目 我需要更改页面的主题 在 Vaadin 6 中 有一个名为 setTheme 的函数 这样我就可以在代码中的任何位置使用该函数更改主题 但是 在 Vaadin 7 中 我找不到类似的东西 我知道会有办
  • SLES Apache Solr start.jar,无法访问 jarfile

    我在启动 Apache Solr 搜索时遇到一些问题 在我的 SLES 11 64 位服务器上安装 java 7 后 我将 solr 3 6 1 解压到 srv apache solr 3 6 0 之后我想启动该软件 但是当我尝试时 jav
  • 如何解决此错误消息:错误:virtualenvwrapper 无法在路径中找到 virtualenv?

    我正在尝试在 Mac 上安装 Python Goose 我运行的是 OSX 10 9 3 安装 Goose 的第一步是 mkvirtualenv no site packages goose 但是 当我运行此命令时 我收到以下错误消息 错误
  • Xcode在哪里打开快速搜索?

    我不知道如何让它索引我的项目文件 快速打开应该搜索任何open项目 曾经有一个路径首选项 但我相信它在 3 1 中被删除了
  • 交换数组中的奇数和偶数

    我在这个网站上看到了这段代码 它使用一种方法对数组进行排序 偶数在前面 奇数在数组后面 我想知道你是否可以做同样的事情 除了先出现奇数 然后出现偶数 我尝试过但没有成功 我是java编码新手 我想测试递归 public class Recu
  • 导致 ValueError: 'b' in __slots__ 与类变量冲突的数据类和槽

    我不明白错误消息 也找不到其他问题和答案来帮助我理解这一点 MWE 使用 Python 3 9 2 进行测试 我知道有一个slots TruePython 3 10 数据类中的参数 但这不是这里的选择 错误输出 Traceback most
  • 如何查看Vite项目中的公共目录进行热加载?

    我有一个使用 Vite 配置的 React 项目 热重载效果很好 但我使用react i18next对于多语言支持 这是我的结构 public gt en gt translation json gt ru gt translation j
  • 如何确定一系列循环数据中的高值和低值?

    我有一些代表周期性运动的数据 所以 它从高点到低点 然后又回来 如果你要绘制它 它就像一个正弦波 然而 每个周期的幅度略有不同 我想列出整个序列中的每个最大值和最小值 如果有 10 个完整的周期 我最终会得到 20 个数字 其中 10 个为
  • Worldwind - 形状总是显示在图像之上?

    我在 WorldWindowGLJPanel 的图层列表中添加了两个图层 其中之一是包含形状的 RenderableLayer 另一个是包含光栅图像的 BasicTiledImageLayer 一层包含一个对象 问题是 当我使用图层管理器
  • 抑制 C# 垃圾回收

    我的应用程序分配大量内存 数百万个小对象 总计几千兆字节 并保留很长时间 NET 是否浪费时间检查所有这些数据来对其进行 GC 第 2 代 GC 检查所有对象的 GC 多久发生一次 有什么办法可以降低它的发生频率或者暂时抑制它的发生吗 我确