问题标签 [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 投票
6 回答
3674 浏览

java - JAVA、JNI 和 C 应用程序的内存占用问题

我有一个用 C 编写的应用程序,它生成一个 JVM 并使用 JNI 与 Java 应用程序交互。我通过 Process Explorer 的内存占用达到 1GB 并且内存不足。现在据我所知,它应该能够达到 2GB。我相信的一件事是 JVM 正在使用的内存在 Process Explorer 中不可见。我的 xmx 设置为 256,我添加了一些语句来观察 java 端内存,它在 256 处达到峰值,而 GC 正在完成它的工作,这一切都很好。所以我的问题是,其他 700+ MB 的消耗在哪里?那里有 Java/JNI/C 内存专家吗?

0 投票
16 回答
146750 浏览

c# - 您如何获得计算机的 RAM 总量?

使用 C#,我想获取我的计算机拥有的 RAM 总量。使用 PerformanceCounter,我可以通过设置获得可用内存的数量:

但我似乎无法找到获取内存总量的方法。我该怎么做呢?

更新:

MagicKat:我在搜索时看到了,但它不起作用 - “您是否缺少程序集或引用?”。我希望将其添加到参考文献中,但在那里看不到。

0 投票
6 回答
5932 浏览

c - What is causing a stack overflow?

You may think that this is a coincidence that the topic of my question is similar to the name of the forum but I actually got here by googling the term "stack overflow".

I use the OPNET network simulator in which I program using C. I think I am having a problem with big array sizes. It seems that I am hitting some sort of memory allocation limitation. It may have to do with OPNET, Windows, my laptop memory or most likely C language. The problem is caused when I try to use nested arrays with a total number of elements coming to several thousand integers. I think I am exceeding an overall memory allocation limit and I am wondering if there is a way to increase this cap. Here's the exact problem description:

I basically have a routing table. Let's call it routing_tbl[n], meaning I am supporting 30 nodes (routers). Now, for each node in this table, I keep info. about many (hundreds) available paths, in an array called paths[p]. Again, for each path in this array, I keep the list of nodes that belong to it in an array called hops[h]. So, I am using at least nph integers worth of memory but this table contains other information as well. In the same function, I am also using another nested array that consumes almost 40,000 integers as well. As soon as I run my simulation, it quits complaining about stack overflow. It works when I reduce the total size of the routing table. What do you think causes the problem and how can it be solved? Much appreciated Ali

0 投票
7 回答
11578 浏览

perl - 如何在 Perl 中找到散列占用的物理内存量?

我有一个 Perl 脚本,我在其中使用哈希表维护一个非常简单的缓存。一旦它占用超过 n 个字节,我想清除哈希,以避免 Perl(32 位)内存不足和崩溃。

我可以检查键值对的数量:

但是是否可以检查散列占用的实际内存?

0 投票
10 回答
13804 浏览

iphone - Objective-C 中的内存管理

可能的重复:
学习 Obj-C 内存管理
iPhone 内存管理的最佳解释在哪里?

我来自 C/C++ 背景,Objective-C 的动态特性对我来说有些陌生,是否有任何人可以向我指出 Objective-C 中一些基本内存管理技术的好资源?前任。保留、释放、自动释放

例如,使用指向 Objective-C 对象的指针并将其视为数组是完全非法的吗?您是否被迫将 NSArray 和 NSMutableArray 用于数据结构?

我知道这些都是相当新手的问题,感谢您为我提供的任何帮助。

0 投票
8 回答
2472 浏览

c - C 指针赋值行为

temp2,temp1是指向某个结构 x 的指针:

现在,在执行以下几行之后:

...会temp2并且temp1仍然指向相同的内存位置吗?如果不是,请解释为什么它们会有所不同。

0 投票
4 回答
4815 浏览

.net - .NET 中的对象内存分析

是否有工具或方法可以找出 .NET 中每个 DLL 或对象消耗了多少内存?它分析得越详细越好。谢谢。

0 投票
10 回答
74655 浏览

linux - 一种确定进程“真实”内存使用情况的方法,即私有脏 RSS?

'ps' 和 'top' 之类的工具会报告各种内存使用情况,例如 VM 大小和驻留集大小。但是,这些都不是“真正的”内存使用:

  • 程序代码在同一程序的多个实例之间共享。
  • 共享库程序代码在使用该库的所有进程之间共享。
  • 一些应用程序分叉进程并与它们共享内存(例如,通过共享内存段)。
  • 虚拟内存系统使 VM 大小报告几乎毫无用处。
  • 当进程被换出时,RSS 为 0,因此它不是很有用。
  • 等等等等。

我发现 Linux 报告的私有脏 RSS 是最接近“真实”内存使用的东西。这可以通过将 中的所有Private_Dirty值相加来获得/proc/somepid/smaps

但是,其他操作系统是否提供类似的功能?如果没有,有什么替代方案?特别是,我对 FreeBSD 和 OS X 很感兴趣。

0 投票
10 回答
3814 浏览

unix - 如何在 solaris 中为进程预分配内存?

我的问题是:

我有一个使用大量内存的 perl 脚本(由于缓存的预期行为)。但是,我注意到我做的缓存越多,它变得越慢,并且该过程大部分时间都处于睡眠模式。

我认为为进程预先分配内存可能会提高性能。

有人在这里有什么想法吗?

更新

我想我在这里不是很清楚。我将更清楚地提出问题:

我不是在寻找在 perl 脚本中进行预分配的方法。我认为这对我没有多大帮助。我感兴趣的是一种告诉操作系统为我的 perl 脚本分配 X 内存量的方法,这样它就不必与以后进入的其他进程竞争。

假设我无法摆脱内存使用。虽然,我也在探索减少这种情况的方法,但不要指望那里有太大的改善。仅供参考,我正在使用 solaris 10 机器。

0 投票
32 回答
1330114 浏览

linux - 如何测量应用程序或进程的实际内存使用情况?

如何测量 Linux 中应用程序或进程的内存使用情况?

来自了解 Linux 上的内存使用的博客文章,ps不是用于此意图的准确工具。

为什么ps是“错误的”

根据您的看法,ps不报告进程的实际内存使用情况。它真正做的是显示如果每个进程是唯一运行的进程,它会占用多少实际内存。当然,一台典型的 Linux 机器在任何给定时间都有几十个进程在运行,这意味着所报告的 VSZ 和 RSS 数字ps几乎肯定是错误的。

(注意:这个问题在这里有非常详细的介绍。)