问题标签 [memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
49516 浏览

c++ - 如何解决内存碎片

我们偶尔会遇到问题,即我们的长时间运行的服务器进程(在 Windows Server 2003 上运行)由于内存分配失败而引发异常。我们怀疑这些分配由于内存碎片而失败。

因此,我们一直在寻找一些可能对我们有帮助的替代内存分配机制,我希望有人能告诉我最好的一个:

1)使用Windows低碎片堆

2) jemalloc - 用于Firefox 3

3) Doug Lea 的malloc

我们的服务器进程是使用跨平台 C++ 代码开发的,因此理想的解决方案也是跨平台的(*nix 操作系统会遭受这种类型的内存碎片吗?)。

另外,我是否认为 LFH 现在是 Windows Server 2008 / Vista 的默认内存分配机制?...如果我们的客户只是升级他们的服务器操作系统,我当前的问题会“消失”吗?

0 投票
10 回答
370791 浏览

c++ - 如何从进程内部确定 CPU 和内存消耗

我曾经的任务是从正在运行的应用程序内部确定以下性能参数:

  • 可用的总虚拟内存
  • 当前使用的虚拟内存
  • 我的进程当前使用的虚拟内存
  • 可用总 RAM
  • 当前使用的内存
  • 我的进程当前使用的 RAM
  • 当前使用的 CPU 百分比
  • 我的进程当前使用的 CPU 百分比

代码必须在 Windows 和 Linux 上运行。尽管这似乎是一项标准任务,但在手册(WIN32 API、GNU 文档)以及 Internet 上查找必要的信息还是花了我几天的时间,因为关于这个主题的信息太多不完整/不正确/过时了在那里发现。

为了避免其他人遇到同样的麻烦,我认为将所有零散的信息以及我通过反复试验发现的信息收集在一个地方是个好主意。

0 投票
6 回答
414 浏览

java - 添加新元素时应该使用克隆吗?什么时候应该使用克隆?

我想在 Java 中实现一个用于处理图形数据结构的类。我有一个 Node 类和一个 Edge 类。Graph 类维护两个列表:节点列表和边列表。每个节点必须有一个唯一的名称。我该如何防范这样的情况:

我相信在将节点和边添加到图形时应该克隆它们并返回一个 NodeEnvelope 类,该类将保持图形结构的完整性。这是正确的做法还是设计从一开始就被打破了?

0 投票
15 回答
11051 浏览

c++ - VC++中未初始化的内存块

众所周知,Visual C++运行时用特殊的非零标记标记未初始化或刚刚释放的内存块。有没有办法完全禁用此行为而无需手动将所有未初始化的内存设置为零?它对我的有效非空检查造成了严重破坏,因为0xFEEEFEEE != 0.

嗯,也许我应该解释得更好一点。我创建并初始化一个变量(通过new),一切都很好。当我释放它(通过删除)时,它会将指针设置为0xFEEEFEEE而不是NULL. 当我插入适当的检查时NULL,就像所有管理自己内存的好程序都应该做的那样,我会遇到问题,因为0xFEEEFEEE检查NULL没有问题。除了在删除它们时手动设置所有指针之外,还有什么好方法NULL可以检测内存何时已被释放?我宁愿不使用Boost仅仅是因为我不想要开销,尽管它可能很小,因为这是我使用 Boost 的唯一目的。

0 投票
29 回答
121776 浏览

c++ - 在 C++ 中避免内存泄漏的一般准则

有哪些一般提示可以确保我不会在 C++ 程序中泄漏内存?如何确定谁应该释放动态分配的内存?

0 投票
7 回答
974 浏览

memory - 更严重的罪过:副作用或传递大量物体?

我在函数内部的循环中有一个函数。内部函数在内存中获取并存储大量数据向量(作为全局变量......我使用的是“R”,类似于“S-Plus”)。循环遍历要获取的一长串数据。外部函数启动该过程并传入要获取的数据集列表。

我对内部函数进行了编程,以便在移动到下一个数据集之前存储每个数据集,因此外部函数的所有工作都会作为对全局变量的副作用发生......这是一个很大的禁忌。这比收集和返回一个巨大的、占用大量内存的向量是好还是坏?有没有更好的第三种方法?

如果我将数据向量存储在数据库中而不是内存中,答案会改变吗?理想情况下,我希望能够在不丢失终止之前处理的所有信息的情况下终止该功能(或使其因网络超时而失败)。

0 投票
8 回答
2572 浏览

java - Which heap size do you prefer?

I know there is no "right" heap size, but which heap size do you use in your applications (application type, jdk, os)?

The JVM Options -Xms (initial/minimum) and -Xmx (maximum) allow for controlling the heap size. What settings make sense under which circumstances? When are the defaults appropriate?

0 投票
3 回答
248 浏览

windows - 是否有一个资源可以彻底解释 Windows 内存?

说真的,我搜索了 MSDN,只得到了一半的答案 - 任务管理器上的列是什么意思?为什么我不能通过枚举线程、模块、堆等来计算 VM 使用率?如何确保我准确地向内存管理器的客户报告剩余的地址空间量?它们在内存词汇表命名空间中是否存在无数冲突?

在线资源在短期内将是最有用的,尽管书籍在中期是可以接受的。

0 投票
7 回答
15136 浏览

memory - 为什么将内存区域标记为非缓存?

在嵌入式应用程序中,我们有一个表格,描述了在目标板上有效的各种地址范围。此表用于设置 MMU。
RAM 地址范围标记为可​​缓存,但其他区域标记为不可缓存。这是为什么?

0 投票
3 回答
237 浏览

winapi - 如何找出应用程序占用了多少地址空间并将其报告给用户?

我正在为一个应用程序编写内存管理器,作为一个由二十多名编码人员组成的团队的一员。我们的内存配额用完了,我们需要能够看到发生了什么,因为我们似乎只使用了大约 700Mb。我需要能够报告它的去向——碎片化等。有什么想法吗?