有没有办法将进程的当前WorkingSet扩展到1GB? [复制]

2023-11-24

可能的重复:
在C++中,有没有办法强制进程的WorkingSet为1GB?

我们希望提前将 .NET 进程的工作集增加到 1GB,以避免页面错误。

有没有办法在.NET 中做到这一点?

Update

不幸的是,即使我们打电话给设置进程工作设置大小Ex,垃圾收集无论如何都会修剪工作集,绕过 MinWorkingSet(请参见下图中的“Automatic GC.Collect()”)。

在下图中,有没有办法将进程WorkingSet(绿线)锁定为1GB,以避免在向进程分配新内存时出现页面错误(红线)峰值?

这太棒了,因为每次发生页面错误时,都会阻塞线程 250us,这会严重影响应用程序性能。

enter image description here

Update

引用自:“Windows via C/C++,第五版,Jeffrey Richter (Wintellect)”

单个进程对 SetProcessWorkingSetSize 的调用将被忽略 除非该进程只是试图清空其工作集。设置 此限制,请在中指定 JOB_OBJECT_LIMIT_WORKINGSET 标志 LimitFlags 成员。

本书暗示设置WorkingSet 的唯一方法是将进程分配给作业对象并设置JOB_OBJECT_LIMIT_WORKINGSET 和MinimumWorkingSetSize。

Update

SetProcessWorkingSetSizeEx 与软页面错误完全无关。它仅指硬页面错误,因为它阻止当前工作集中的内存被调出到硬盘驱动器。

Update

事实证明,增加工作集的唯一方法是使用极其专业的运行 .NETCLR Host用 C++ 编写(请参阅下面我的答案)。


为了实现你想要的,你需要调用/pinvoke设置工作集大小Ex最小 1 GB(第二个参数)并且QUOTA_LIMITS_HARDWS_MIN_ENABLE作为第四个参数,它确保即使在系统的“高内存压力”条件下工作集大小也不会低于您给出的最小值。

系统行为还取决于调用者的权限,取决于操作系统版本等,您可能需要SE_INC_WORKING_SET_NAME and/or SE_INC_BASE_PRIORITY_NAME !

“在幕后”使用这些 API 的另一个(更好的)选项是 .NET 包装器,您可以找到here.

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

有没有办法将进程的当前WorkingSet扩展到1GB? [复制] 的相关文章

  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 在 python 解释器提示符中添加颜色,无法正确换行

    我希望在终端中有一个更丰富多彩的 Python 提示符 只是为了便于阅读 我目前有 sys ps1 033 96m gt gt gt 033 0m sys ps2 033 96m 033 0m in my PYTHONSTARTUP文件 它
  • 使用“void_t”检查类是否具有具有特定签名的方法

    此刻 我是使用此方法检查类是否具有具有特定签名的方法 参加后Walter E Brown 的元编程 CppCon2014 演讲 我开始想知道是否void t可以在这种特殊情况下使用 以使代码更清晰 更具可读性 但是我很难思考void t 到
  • Angular 2 中路线更改时的结束间隔

    我在路由器插座内的 Angular 2 组件中启动一个计时器 setInterval gt 10000 当我离开嵌入组件的路线时 计时器不会退出 我怎样才能做到这一点 您可以从此挂钩中清除间隔 我的是从组件 视图控制的 export cla
  • 如何检查c中是否有被零除的情况

    include
  • ggplot2 条形图上的舍入百分比标签

    q1 lt qplot factor Q1 data survey geom histogram fill factor Q1 ylim c 0 300 options digits 2 q1 geom bar colour black s
  • 如何使用线程执行单元测试? [复制]

    这个问题在这里已经有答案了 执行摘要 当线程中抛出断言错误时 单元测试不会终止 这是有道理的 因为不应该允许一个线程使另一个线程崩溃 问题是我该如何 1 在第一个辅助线程崩溃时使整个测试失败 或者 2 循环并在每个线程全部完成后确定它们的状
  • 如何通过Fiddler捕获Visual Studio Code流量?

    如何通过Fiddler抓取VS Code流量 我运行了我的 Fiddler 看起来工作正常 它可以捕获浏览器的流量 但不能捕获 VS Code 的流量 如果有人能给我解决方案 我真的很感激 Thanks 假设您正在使用一些 REST 客户端
  • 使用 typescript 创建猫鼬模型 - 子文档

    我正在使用打字稿实现猫鼬模型 如本文所述 https github com Appsilon styleguide wiki mongoose typescript models并且不确定当您使用子文档数组时这会如何翻译 假设我有以下模型和
  • 如何检查存储过程是否存在?

    我在网上搜索了一下 发现了一个post它使用以下代码片段来检查存储过程是否存在 select from USER SOURCE where type PROCEDURE and name my stored procedure 还有其他方法
  • Django,使用 ModelForm 更新用户配置文件

    我正在尝试为用户的个人资料显示一个简单的 ModelForm 并允许用户更新它 这里的问题是我的逻辑存在某种缺陷 在成功调用 form save 后 旧值显示在页面上 直到刷新才会显示适当的值 这里有什么问题吗 login required
  • 如何使用 Swift 4 在 UICollection 视图中进行多项选择

    我是 swift 的新手 从头开始构建 iOS 应用程序 使用 swift 4 想要执行如下操作 1 在UICollectionView中实现多单元格选择 2 将选定的单元格数据传递到服务器 请任何人都可以帮助我 该怎么做 告诉我执行此操作
  • 如何在 Windows 上获取硬件 MAC 地址

    我正在尝试从 NIC 检索 MAC 地址 有多种方法可以获取它 本文介绍了最常见的方法 http www codeguru com Cpp I N network networkinformation article php c5451 我
  • 单击传单标记即可转到 URL

    在 R 的传单包中 有没有办法单击标记并定向到 URL 这是JS解决方案 在 R 中 添加带有 URL 的弹出窗口 library leaflet content lt paste sep br b a href http www samu
  • 如何在 mac os x yosemite (10.10) 上安装 mcrypt 扩展

    我已将 Mac OS X 更新到 Yosemite 但这样做会覆盖我的所有开发环境 所以现在 要在本地 apache 上运行 Laravel 4 我需要安装 Mcrypt 扩展 但我尝试的一切都失败了 即使是在 OS X Mavericks
  • Android 蓝牙 VS 低功耗蓝牙

    我正在尝试创建一个应用程序 只要智能手机正在运行 就需要交换少量数据 只是为了通知设备足够接近 据我了解 传统的蓝牙会消耗大量电池 因此打开几个小时是不可行的 我正在考虑 BLE 但仍然担心电池容量 Q0 是否可以在手机运行时就开启BLE
  • JQuery DatePicker 背景颜色

    我正在使用 JQuery DatePicker 的示例链接文本 在我的 asp net 页面上 但是 日期选择器的背景颜色是白色 我不知道如何改变这个 更改为默认颜色 我的asp net页面背景页面是白色的 可能是这个原因 任何帮助将不胜感
  • 如何在模板中迭代 Django CHOICES - 不使用表单或模型实例

    我目前使用选项来定义月份列表和星期几列表 我想在我的模板中显示这些选择列表 而不必与特定实例或表单相关 例如 在我的模型中 MONTH CHOICES 01 January 02 February 03 March etc DAY CHOI
  • file_get_contents() 与使用 http/1.1 的上下文显着降低下载速度

    使用每个图像下载下面的代码 file get contents 平均需要 8 15 秒 如果我不在 file get contents 上使用上下文 则图像下载时间不到一秒 如果我将 opts 更改为 下面 我将获得与 file get c
  • 如何 - 单个 MongoDB 上的多个 Meteor 应用程序 - 相同的集合?

    以前有人问过这样的问题 如何在 Meteor 应用程序之间共享 MongoDB 集合 然而 答案并不清楚 我需要将 Meteor 公共应用程序和管理应用程序分开 出于多种原因 但主要是安全性和代码管理 使用接受的答案 export MONG
  • 有没有办法将进程的当前WorkingSet扩展到1GB? [复制]

    这个问题在这里已经有答案了 可能的重复 在C 中 有没有办法强制进程的WorkingSet为1GB 我们希望提前将 NET 进程的工作集增加到 1GB 以避免页面错误 有没有办法在 NET 中做到这一点 Update 不幸的是 即使我们打电