问题标签 [memory-consumption]

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 投票
2 回答
1462 浏览

haskell - 限制 cabal 安装使用的内存?

我的服务器托管受到 1GB 内存的限制。当我想编译一些大程序git-annex时,Cabal 会占用大量内存。有没有办法限制cabalgcl使用某些选项来限制内存使用?

我用一些细节更新了问题:我在 Webfaction 主机(CentOS 7 - 64 位)上运行cabal(1.22.4.0)和Ghc7.10.2,可以访问 shell(非 root 访问)。Webfaction 管理员/机器人通常会因编译而容忍一些突发。但是Ghc/Cabal需要太多的内存并且花费太多的时间来编译某些包。所以系统会自动杀死所有进程。

我需要多次重新启动编译才能最终获得成功的结果。

我的主要目标是编译以成功结束,无论需要多长时间。

0 投票
1 回答
719 浏览

time-complexity - Spark中数据帧操作的时间复杂度和内存占用是多少?

Spark 中数据帧操作的算法复杂度和/或内存消耗是多少?我在文档中找不到任何信息。

一个有用的例子是使用另一列 ( withColumn()) 扩展数据帧时的内存/磁盘占用量的答案:(在具有自动垃圾收集的 Python 中)最好table = table.withColumn(…)还是extended_table = table.withColumn()使用相同的内存?

PS:假设两个表都使用persist().

0 投票
2 回答
7835 浏览

data-structures - How many integers can I create in 1GB memory?

In book Algorithms fourth edition by Robert Sedgewick on page 200, it says "for example, if you have 1GB of memory on your computer (1 billion bytes), you cannot fit more than about 32 million int values."

I got confused after my calculation: 1,000,000,000 bytes/4 bytes = 250 million

How the author got 32 million?

The book describes like below:

enter image description here

0 投票
2 回答
818 浏览

python - f.read 的 Python 内存错误

我在 python“Python 内存错误”中遇到内存问题。事实上,我尝试.bson使用这个脚本从一个大文件中恢复数据:

错误信息 :

感谢您提供任何帮助

0 投票
1 回答
650 浏览

wpf - VMWare Workstation 上的 WPF 应用程序使用高内存

我不想过多详细介绍功能,但是当向其中添加或删除子控件时,我们的应用程序窗口会调整大小。在最近执行的压力测试中,我们注意到 Windows 任务管理器中的应用程序工作集高峰期。每 200 毫秒添加和删除子控件,因此窗口每隔一段时间就会变大或变小。我们在 VMware Workstation Pro 虚拟机(Windows Server 2012、Windows 10)上执行了这些测试。

最多几个小时后,应用程序总是会报告内存不足异常,并且所说的窗口会冻结或消失。我们注意到崩溃后工作集正常(低于 100 MB),但峰值工作集始终超过 1 GB(~1.1 到 ~1.6 GB)。

为了找出问题是否是由我们的应用程序中的错误引起的,我们决定创建一个单窗口 WPF 应用程序,其中只有一个计时器,该计时器每 200 毫秒更改一次主窗口的高度。原来这个应用程序也有同样的问题。

问题是我找不到有关类似问题的信息,所以我决定在这里发布一个问题。你会如何解释这种行为?

我还要注意:

  1. 当窗口最小化时,问题就不会发生。
  2. 很难在主机(不是虚拟机)上重现该问题,但我们碰巧在那里也观察到了它(在 Windows 8 上)。

我们还在虚拟计算机 (WMware ESX 5.5) 上进行了测试。当没人看时,崩溃会发生得更快:-)。我的意思是我们从 vSphere Client 连接到虚拟机并打开控制台以在操作系统上启动我们的测试应用程序。然后我们切换到 vSphere Client 的另一个选项卡以隐藏控制台。当我们稍后(假设在半小时后)返回时,我们可以观察到我们的测试应用程序的内存使用历史,它具有缓慢上升的斜率,并在显示控制台的那一刻立即下降。

我将不胜感激任何可以帮助我理解此问题原因的信息。谢谢你。

- 编辑 -

我在 VM (Windows Server 2012) 上的两个实例中启动了我的测试应用程序 - 都为任何 CPU 编译,但其中一个在 Visual Studio 中未选中Prefer 32-bit复选框。所以一个以 32 位模式启动,另一个以 64 位模式启动。32 位版本在一个小时左右就崩溃了,峰值工作集低于 150 MB。64 位版本继续运行。我想知道这是否可能是要走的路...

以下是 32 位应用程序版本的问题签名:

0 投票
0 回答
37 浏览

jsf - MyFaces 服务器端状态保存中视图状态的最小字节数

使用服务器端状态保存方法时,MyFaces 中视图状态的最小字节数是多少?

0 投票
0 回答
231 浏览

c++ - 智能指针c ++的高内存消耗

我对在 C++ 中使用指针/智能指针感到困惑。我们想从 NIC 捕获数据包。我们使用PF_RING ZC来捕获数据包,如下所示:

可以看出,首先我们将数据包存储在runZCWrapper 中的一个愚蠢的 SPMC队列中。当队列满时,被写入一个名为_buffersConnection 的链表。

捕获工作正常,我们保存所有数据包。我们对这种代码和平的问题是它的高内存消耗。当打包到达时,activeBufferConnection 将其存储。当数据包数量增加到 1000000 时,会创建新的 activeBufferConnection 并将最后一个存储在名为 buffersconnections 的链表中。我们将缓冲区连接数设置为 25。

从上面的代码中可以看出,我们使用智能指针来指向 activeBufferConnection 。当 activeBufferConnection 已满时,它的指针传递给 buffersconnections 的“add”方法。

这是我们在 runZCConnection 中使用的 ArchiveList 类的一些代码;

当 activeBufferConnection 的数量增加到 25 时,第一个循环结束,第二个循环开始工作。第二个循环删除链表的所有 25 个元素。这是我们在runZCConnection中使用的节点类的一些代码;

top命令的输出是问题所在。runZCConnection 的第一个循环将数据包存储在一些缓冲区中。在第二个循环中删除缓冲区后,它们使用的内存没有被释放,我们不知道为什么会发生这种情况。

正如 top 命令所示,在程序删除所有缓冲区后,内存并没有被释放。该问题可能与错误删除缓冲区有关,也可能与错误使用指针有关。我们在代码的某些地方设置了一些日志,返回有关程序及其指针状态的一些信息。以下是一些输出行:

我们怎样才能解决这个问题?提前致谢。

0 投票
0 回答
192 浏览

qml - 应用程序内存使用 FileDialog 增加很多:使用 Loader 此内存不是空闲的

我有一个简单的 QML 应用程序,当按下按钮时我会打开一个 FileDialog。

我意识到,当我打开 FileDialog 时,当前的应用程序内存增加了很多(只有 12 Mb 的对话框),所以我在 FileDialog 中添加了一个加载器。因此,只有在我打开对话框时才会增加内存。但我的问题是我无法释放这个内存,即使将 Loader 源设置为“”。

我的测试文件:

还有我的带有 FileDialog 的 QML 文件:MyFileDialog.qml

我究竟做错了什么?有什么想法或建议吗?

提前非常感谢,迭戈

0 投票
0 回答
440 浏览

python - 多处理 - Pool.imap 正在使用我的迭代器

我有一个非常大的迭代器,它返回大量数据(文件内容)。因此,使用迭代器有效地在几秒钟内耗尽了我所有的 RAM。通常,pythons multiprocessing.Pool().imap(...) 声称会进行惰性迭代。这意味着它从迭代器中获取一个值,将其传递给 worker,然后等待 worker 完成。这正是我想要的。

但是,由于某种原因,它会继续从迭代器中检索值,即使最大数量的工作人员已经在运行。这是我的代码:

我让工人在开始和结束时打印一条消息,而迭代器在读取文件时打印。这表明迭代器持续读取文件的速度比工作人员处理它们的速度要快得多。

我该如何解决?imap(..) 函数是否正常工作,我只是误解了它应该如何工作?

0 投票
1 回答
2226 浏览

javascript - Lodash 函数的计算复杂度

我试图在 Lodash 网站和网络上找到有关 Lodash 函数的时间和内存复杂性的信息,尤其是 get,但我没有得到任何东西。有人知道吗?

谢谢 !

NB:由于lodash是开源的,如果需要我可以自己做^^