Environment.WorkingSet 错误地报告内存使用情况

2024-05-11

Environment.WorkingSet 错误地报告在 Windows 2003 Server 上运行的网站的内存使用情况。(操作系统版本:Microsoft Windows NT 5.2.3790 Service Pack 2,.NET 版本:2.0.50727.3607)

它将内存报告为工作集(物理内存):1952 MB (2047468061)。

同一网站在 Windows Vista 上本地运行,工作集(物理内存):49 MB (51924992)。

我对服务器的访问权限有限,支持也非常有限:(。 所以我通过使用 VirtualQuery 遍历来计算总内存。 状态为 MEM_FREE 的页面总数为 1300 MB。 (我猜服务器有 4 GB RAM 并且 PAE 未启用,最大用户模式虚拟地址是 0x7fff0000。)

所以,我知道工作集不仅仅与虚拟内存有关。但是,拥有如此高的工作集而在另一台机器上却很低,这正常吗?


我认为问题与中描述的内容有关本文 http://www.chrisbrandsma.com/2005/05/fun-with-workingset-and-int32.html:

2005 年 5 月 4 日
工作集和 int32 的乐趣
我终于在 .NET 框架中发现了一个诚实的错误。

... 这 workingSet 返回进程正在使用的内存量,如下所示 一个整数(32 位有符号整数)。好的,所以 a 的最大值 整数是 2,147,483,647——这非常接近总数 进程在其工作集中可以拥有的内存量。

... Windows 中实际上有一个开关可以允许进程使用 3 GB 内存而不是 2 GB。此开关经常在以下情况下打开 处理分析服务——这可能会占用大量内存。所以 现在发生的事情是,当我轮询工作集时,我得到了否定的结果 数,一个非常大的负数。通常,在领域 -2,147,482,342。

...问题是溢出位。

工作集以二进制值返回到 .NET 框架。这 整数的第一位是符号位。 0 为正,1 为负。 所以,当值从(二进制)变成 1111111111111111111111111111111 至(二进制) 10000000000000000000000000000000 该值从 2147483647 变为 -2147483647。

好吧,所以我还得解决这个问题。这是我想到的(在 C# 中):

long lWorkingSet = 0;
if (process.WorkingSet >= 0)
 lWorkingSet = processWorkingSet;
else
 lWorkingSet = ((long)int.MaxValue*2)+process.WorkingSet;

希望现在可以解决这个问题。

真正的问题将在以后出现。微软knows http://web.archive.org/web/20070214002249/http://blogs.msdn.com/brada/archive/2003/10/16/50535.aspx关于 这个问题。我仍然不知道他们将如何解决这个问题 Win64...这个技巧将不再起作用。


http://msdn2.microsoft.com/library/0aayt1d0(en-us,vs.80).aspx http://msdn2.microsoft.com/library/0aayt1d0(en-us,vs.80).aspx:
将会有一个 Process.WorkingSet64 变量,它们是 弃用工作集。

但从另一方面来说,我认为对于一个受管理的组织来说这是不可能的。 进程接近 3GB 限制,因为运行时会分割 内存分成多个堆。这不是真的吗?

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

Environment.WorkingSet 错误地报告内存使用情况 的相关文章

  • 如何以编程方式设置单元格颜色 epplus?

    我想知道是否可以使用 epplus 以编程方式设置单元格颜色 我从 sql 存储过程加载数据并且运行良好 但我的用户想要 包含 年假 一词的单元格的背景颜色为浅黄色 而不是默认的白色 有没有办法做到这一点 也许通过迭代数据表 下面是哪里 p
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • ViewDataFactory 和强类型母版页

    我试图让我的强类型母版页在我的 ASP MVC 2 0 应用程序中工作 在这两篇文章的帮助下我已经取得了很大的进展 在 ASP NET MVC 中将数据传递到母版页 https stackoverflow com questions 785
  • 在sql server 2008中插入新记录时如何检查数据库中的值是否已存在

    我创建了一个存储过程 用于从表中选择值 如果该值已经存在 那么它将更新该值 但如果不存在 那么它将插入新值 我为此使用了存储过程 如下所示 Create PROCEDURE dbo sp Insert Tid int NULL Quid i
  • 无法将预编译、合并的 webapp 部署到 Azure

    我正在尝试将 ASP NET Web 应用程序部署到 Azure 它是 Web 表单 MVC 和 WebAPI 的混合体 并且有大量的 aspx ascx 文件 因此它们确实需要预编译 否则每次部署都会使网站运行缓慢一段时间 我正在尝试通过
  • 我可以根据角色隐藏/显示 asp:Menu 项吗?

    我可以隐藏某些菜单项吗asp Menu基于角色的控制
  • 如何为网站创建 RSS feed?

    我开发了一个网络应用程序 现在我想为我的网站创建 Rss 提要 在我的应用程序中 我有一个名为电影新闻的模块 其中包含电影明星的最新新闻 现在我想为该模块创建 RSS 提要 该新闻包含标题和描述 如何为我的应用程序创建 RSS 源 这是我用
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 内存分配/释放瓶颈?

    在典型的实际程序中 内存分配 释放的瓶颈有多大 欢迎来自性能通常很重要的任何类型的程序的答案 malloc free 垃圾收集的正确实现是否足够快 以至于它只是少数极端情况下的瓶颈 或者大多数性能关键型软件会从尝试减少内存分配量或拥有更快的
  • 如何在asp.net中异步执行两个作业

    网 我需要你的帮助请帮助我 请参阅我的代码 如果我的第一份工作完成 则退出btn ok代码隐藏并更新到 ASP NET 屏幕 但同时作业 2 必须工作 正在处理批量电子邮件 protected void btn ok object send
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • 你调用的对象是空的。 IE问题

    我在 ASP Net 中开发了一个网站 它在除 IE 之外的所有浏览器中都能正常工作 在 IE 中我收到错误 对象引用未设置为对象的实例 在我的本地计算机中一切正常 发布到服务器后出现错误 有什么想法如何解决这个问题吗 这是我得到的堆栈跟踪
  • 密码保护 IIS 7.5 中的 ASP.NET Web 应用程序

    我在 Windows 7 上使用 IIS 7 5 为我的 asp net 网站提供测试服务 为了阻止随意的人查看我的网站 我希望 IIS 在提供任何服务之前需要用户名和密码 我已尝试在应用程序上禁用匿名身份验证并启用 Windows 身份验
  • Gridview 错误:对 Bind 的调用格式不正确

    我有以下 gridview 代码
  • DSN 到连接字符串?

    我们有一个 ASP NET 网站 该网站使用一个数据库 我们希望能够使用连接字符串来访问该数据库 我们已经成功设置了一个 DSN 来连接到这个数据库 但我似乎无法发现连接字符串的正确魔力 是否有一种直接的方法可以将 DSN 中的值转换为连接
  • 将列添加到新的数据行

    是否可以创建一个新的 DataRow 对象并在运行时向其中添加列 How can I specify column names for this data row object DataRow row new DataRow 不 DataR
  • Stripe Webhook 事件 续订订阅

    我在我的 Asp net 应用程序中使用 STRIPE 进行信用卡付款 应用程序有每月订阅计划 第一次当用户订阅 webhook 事件 customer subscription created 时触发 我的问题是 下个月订阅续订时哪些事件
  • 执行多个查询时如何保持连接打开?

    我正在使用多个查询从应用程序中的同一服务器提取数据 问题是每次有新查询时我都必须打开一个新连接 是否有可能 打开连接 运行查询 拉取结果 运行另一个查询 拉取另一个结果 运行最终查询 拉取另一个结果 关闭连接 尽管您可能还不知道 但您的做法
  • Linq 连接两个值

    假设我有一个列表 City State 它最初来自数据库 我有LocationID 但现在我将它加载到内存中 假设我还有一张快餐店表 其中记录了城市和州 我需要获取与城市和州相匹配的机构列表 注意 我尝试描述一个简化的场景 我的业务领域完全
  • Razor 与 ASPX 语法的比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近 我开始研究 MVC3 和 Razor 并阅读了几篇有关这些主题的文章 以更好地理解这个概念 我一直在读Scott Guthrie 的博客文

随机推荐

  • hadoop中reducer的数量

    我正在学习hadoop 我发现减速器的数量非常令人困惑 1 reducer的数量与partition的数量相同 2 reducer 的数量是 0 95 或 1 75 乘以 节点数 每个节点的最大容器数 3 减速机数量设定为mapred re
  • Windows 上的 wchar_t 和 char16_t 是一样的吗?

    我有一个实例std u16string 我可以通过它吗c str 到一个 Win32 API 它期望LPCWSTR 没有任何类型的转换 例如 我可以安全地这样做吗 auto u16s std u16string u Hello SetWin
  • 我想在后端验证来自 golang 前端的时区

    前端在注册期间发送时区以及其他用户详细信息 我需要在时区上放置一个验证器来进行 api 测试 时区数据的格式为 GMT 10 00 Hawaii GMT 08 00 Pacific Time US amp Canada 我所做的是定义数组中
  • 如何从 OpenCover 报告中排除类别

    在使用 OpenCover 为 MSTest 套件生成覆盖率报告 然后使用 ReportGenerator 生成 HTML 报告 时 我尝试排除框架生成的类 特别是 通过服务引用在项目的命名空间下生成的类 我用来生成 XML 文件的命令如下
  • jwt.io 上的“秘密 Base64 编码”是什么意思以及如何使用 `openssl dgst` 模拟它

    我尝试从 jwt io 获得相同的输出openssl 只要我这样做not mark 秘密base64编码 我可以把签名之前的部分 运行它 echo n pasted data from jwt io openssl dgst binary
  • 如何从网页启动 Windows 应用程序?

    我们有一个公司内部网 并且权力机构认为拥有一组代表大多数代表使用的应用程序 Outlook Excel 少数其他应用程序 的图标 链接会很好 这个想法是 如果安装了应用程序 单击链接 图标将在客户端计算机上启动该应用程序 有人曾经有过这样的
  • Android 浏览器是否在 touchStart 上锁定 DOM?

    我正在尝试构建一个包含 5 个块的菜单 用户可以在其中旋转 您可以在这里查看演示 http m iijax com menu php http m iijax com menu php 在 iPhone 上运行良好 有时有点迟缓 但这不是重
  • 用于移动 Web 应用程序的带有图表的框架

    我正在开发一个移动网络应用程序 我需要在饼图中表示一些数据 但是我没有找到任何好的框架来提供良好的选择并在移动设备上正常工作 我想知道一些框架 免费 这可以帮助我 如果您能给出一些基础示例 我会感到惊讶 我正在考虑使用 ajax 技术来显示
  • 如何在 macOS 上的 SwiftUI 中设置拖动图像

    我正在尝试更改 GridView 的默认拖放预览图像 该图像似乎包含网格中的所有可见项目 据我了解 我应该能够设置NSItemProvider previewImageHandler块来自定义所使用的图像 我似乎找不到任何关于返回自定义图像
  • DataContext.CreateDatabase() 表示文件已存在 - 但事实并非如此

    这可能是 Windows 7 问题 但调用 using var context new DataClassesDataContext if context DatabaseExists context CreateDatabase 结果出现
  • C# WPF 如何动态设置属性设置方法?

    我一直在四处寻找 但似乎找不到我要找的东西 所以我会在这里尝试一下 情况 我有 MainWindow 和 MainWindowData 类 MainWindowData 中只有使用 UpdateGUI 属性定义的公共属性 public cl
  • SQL Server、ISABOUT、加权项

    我试图弄清楚加权项在 SQL SERVER 的 ISABOUT 查询中是如何工作的 这是我目前所在的位置 每个查询返回以下行 查询 1 权重 1 初始排名 SELECT FROM CONTAINSTABLE documentParts ti
  • 如何加快列表理解速度

    以下是我的清单 col red yellow blue red green yellow pink orange brown pink brown 我的目标是消除每个列表中出现一次的项目 这是我的代码 eliminate w for w i
  • python 函数是否应该总是返回一些值?

    当我开始使用 python 编码时 一位高级开发人员建议我放置一个return True 一般为布尔值 每当函数的作用域结束时 例如 def mytest try os system convert text pdf text jpg ex
  • Haskell 类型系统的细微差别

    我一直在深入了解 haskell 类型系统的本质 并试图了解类型类的要点 我已经学到了很多东西 但我在下面的代码片段上遇到了困难 使用这些类和实例定义 class Show a gt C a where f Int gt a instanc
  • getActivity() 是什么意思?

    什么是getActivity 意思是 我在某个地方看到 他们写道MainActivity this startActionMode mActionModeCallback 代替getActivity 有人能解释一下这两行是什么意思吗 som
  • 如何在 git 中删除 subversion 远程?

    我有一个最初使用 git svn 创建的 git 存储库 现在我有一个推送到的 git 服务器 但 svn 存储库已丢失 我可以删除 svn 远程吗 如何 您可以编辑 git config文件并删除与要删除的遥控器关联的部分 您要删除的行可
  • 比较两个包含对象的数组以计算发生了什么变化?

    使用平面 JavaScript 或使用 lodash 最简单的方法是什么 希望 lodash 有一个函数 我比较以下数组并返回已更改的值 Before id 0 name Bob age 27 id 1 name Frank age 32
  • 在 while 循环中使用 getchar() 打印一条语句两次..如何?

    我有一个非常简单的程序 如下所示 int main int opt int n int flag 1 while flag printf m inside while Press c to continue n if opt getchar
  • Environment.WorkingSet 错误地报告内存使用情况

    Environment WorkingSet 错误地报告在 Windows 2003 Server 上运行的网站的内存使用情况 操作系统版本 Microsoft Windows NT 5 2 3790 Service Pack 2 NET