问题标签 [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.
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 内存专家吗?
c# - 您如何获得计算机的 RAM 总量?
使用 C#,我想获取我的计算机拥有的 RAM 总量。使用 PerformanceCounter,我可以通过设置获得可用内存的数量:
但我似乎无法找到获取内存总量的方法。我该怎么做呢?
更新:
MagicKat:我在搜索时看到了,但它不起作用 - “您是否缺少程序集或引用?”。我希望将其添加到参考文献中,但在那里看不到。
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
perl - 如何在 Perl 中找到散列占用的物理内存量?
我有一个 Perl 脚本,我在其中使用哈希表维护一个非常简单的缓存。一旦它占用超过 n 个字节,我想清除哈希,以避免 Perl(32 位)内存不足和崩溃。
我可以检查键值对的数量:
但是是否可以检查散列占用的实际内存?
iphone - Objective-C 中的内存管理
我来自 C/C++ 背景,Objective-C 的动态特性对我来说有些陌生,是否有任何人可以向我指出 Objective-C 中一些基本内存管理技术的好资源?前任。保留、释放、自动释放
例如,使用指向 Objective-C 对象的指针并将其视为数组是完全非法的吗?您是否被迫将 NSArray 和 NSMutableArray 用于数据结构?
我知道这些都是相当新手的问题,感谢您为我提供的任何帮助。
c - C 指针赋值行为
temp2
,temp1
是指向某个结构 x 的指针:
现在,在执行以下几行之后:
...会temp2
并且temp1
仍然指向相同的内存位置吗?如果不是,请解释为什么它们会有所不同。
.net - .NET 中的对象内存分析
是否有工具或方法可以找出 .NET 中每个 DLL 或对象消耗了多少内存?它分析得越详细越好。谢谢。
linux - 一种确定进程“真实”内存使用情况的方法,即私有脏 RSS?
'ps' 和 'top' 之类的工具会报告各种内存使用情况,例如 VM 大小和驻留集大小。但是,这些都不是“真正的”内存使用:
- 程序代码在同一程序的多个实例之间共享。
- 共享库程序代码在使用该库的所有进程之间共享。
- 一些应用程序分叉进程并与它们共享内存(例如,通过共享内存段)。
- 虚拟内存系统使 VM 大小报告几乎毫无用处。
- 当进程被换出时,RSS 为 0,因此它不是很有用。
- 等等等等。
我发现 Linux 报告的私有脏 RSS 是最接近“真实”内存使用的东西。这可以通过将 中的所有Private_Dirty
值相加来获得/proc/somepid/smaps
。
但是,其他操作系统是否提供类似的功能?如果没有,有什么替代方案?特别是,我对 FreeBSD 和 OS X 很感兴趣。
unix - 如何在 solaris 中为进程预分配内存?
我的问题是:
我有一个使用大量内存的 perl 脚本(由于缓存的预期行为)。但是,我注意到我做的缓存越多,它变得越慢,并且该过程大部分时间都处于睡眠模式。
我认为为进程预先分配内存可能会提高性能。
有人在这里有什么想法吗?
更新:
我想我在这里不是很清楚。我将更清楚地提出问题:
我不是在寻找在 perl 脚本中进行预分配的方法。我认为这对我没有多大帮助。我感兴趣的是一种告诉操作系统为我的 perl 脚本分配 X 内存量的方法,这样它就不必与以后进入的其他进程竞争。
假设我无法摆脱内存使用。虽然,我也在探索减少这种情况的方法,但不要指望那里有太大的改善。仅供参考,我正在使用 solaris 10 机器。
linux - 如何测量应用程序或进程的实际内存使用情况?
如何测量 Linux 中应用程序或进程的内存使用情况?
来自了解 Linux 上的内存使用的博客文章,ps
不是用于此意图的准确工具。
为什么
ps
是“错误的”根据您的看法,
ps
不报告进程的实际内存使用情况。它真正做的是显示如果每个进程是唯一运行的进程,它会占用多少实际内存。当然,一台典型的 Linux 机器在任何给定时间都有几十个进程在运行,这意味着所报告的 VSZ 和 RSS 数字ps
几乎肯定是错误的。
(注意:这个问题在这里有非常详细的介绍。)