问题标签 [pre-allocation]

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 投票
3 回答
4131 浏览

matlab - 如何在 MATLAB 中预分配非数字向量?

我经常发现自己在做这样的事情:

哪个,虽然功能,不是最佳的 -processedData向量在循环内增长。甚至mlint警告我,我应该考虑预先分配速度。

如果数据是 的向量int8,我可以这样做:

并修改循环以填充向量槽而不是连接。

有没有办法预先分配一个向量,以便它可以随后保存结构或对象?


更新:Azim 回答的启发,我只是颠倒了循环顺序。正如调试器确认的那样,首先处理最后一个元素会强制在第一次命中时预分配整个向量:

这要求由 MATLAB 返回的任何对象process()都具有有效的零参数构造函数processedData,因为 MATLAB在第一次使用真实对象写入它时进行初始化。

mlint仍然抱怨可能的数组增长,但我认为那是因为它无法识别反向循环迭代......

0 投票
1 回答
9113 浏览

arrays - Matlab中的预分配数组?

我正在使用一个简单的for循环来裁剪大量图像,然后将它们存储在一个单元格数组中。我不断收到消息:

该变量croppedSag似乎在每次循环迭代时都会改变大小。考虑预分配速度。

我之前在 MATLAB 中编码时已经多次看到这一点。我一直忽略它,我很好奇如果我有 10,000 张或更多图像,预分配会增加多少运行时间?

另外,我在文档中阅读了有关预分配的信息,它说要用于此zeros()目的。我将如何将它用于下面的代码?

我没有完全按照文档中的示例进行操作。

0 投票
1 回答
105 浏览

javascript - 使用计数预分配记录

我读过记录的预分配可以提高性能,这应该是有益的,尤其是在处理时间序列数据集的许多记录时。

我有点担心必须通过承诺可能会减慢速度,并且可能每次都检查计数会否定预先分配记录的性能优势。

有没有更高效的方法来处理这个问题?

0 投票
3 回答
1427 浏览

r - 从 read.csv 逐步追加数据

我想通过读取每个月的每一天的 csv 文件来构建一个数据框。我的每日 csv 文件包含相同行数的字符、双精度和整数列。我知道任何给定月份的最大行数,并且每个 csv 文件的列数保持不变。我使用 fileListing 循环浏览一个月中的每一天,其中包含 csv 文件名列表(例如,对于 1 月):

抱歉修改了我的问题,因为我发现了它的一部分(duh),但是我应该使用 rbind 逐步在数据框的底部插入数据,还是很慢?

谢谢你。

BSL

0 投票
1 回答
62 浏览

arrays - NaN 或 Inf 数组预分配

数组索引可用于有效的数组预分配。例如

但这不适用于 NaN 或 Inf

为什么 ?

0 投票
1 回答
272 浏览

matlab - 为什么 MATLAB 在设置预分配结构的字段时会不断消耗内存?

我正在阅读 AVI 电影的帧并对其帧进行一些计算。这是我的代码的一部分:

问题是它一直在 for 循环中消耗内存。我首先怀疑read(mov, k),但这不是问题。我做的计算越多(我设置的字段越多),分配的内存就越多。如图所示,红色矩形表示运行上述代码时分配的内存,橙色表示相同代码,最后 3 行注释(SdxSdySdtwhos方法显示在运行 for 循环之前和之后变量的数量或大小没有变化(除了k):

在此处输入图像描述

当我添加更多字段时情况会变得更糟,它会消耗所有内存并显示错误消息。

我错过了什么吗?我怎样才能防止这种情况?

顺便说一句,我正在使用 R2011a。

0 投票
0 回答
162 浏览

filesystems - 在 ext4 中禁用 prealloc

我需要禁用preallocext4 中的功能。但是没有一个名为disprealloc. 我想知道是否有任何方法可以禁用 prealloc 功能。

在这方面的任何建议将不胜感激

0 投票
2 回答
4290 浏览

python - 在python中初始化64 x 64 numpy的(0,0)元组?

是否可以创建任意数据结构的 numpy,例如元组?如果是,我如何在不写出来的情况下初始化它?(显然,我不想写出 64 x 64 数组)

0 投票
1 回答
32 浏览

matlab - 如何在matlab中存储字段变量进行预分配

我通过附加值将在for循环中计算的字段变量存储在向量中,但是我想先预分配性能。我试图对这个操作进行矢量化,但它并没有给我想要完成的任务。我已经把操作的例子放在下面。我该如何进行预分配?为了速度。

0 投票
1 回答
146 浏览

matlab - 为什么 matlab 会警告预分配每个循环都会重置的变量?

我的程序中有一个单元格变量,Matlab 警告要预先分配它。代码的简单形式是这样的:

首先我想知道为什么a应该预先分配,因为它在每个循环中都会被重置。其次,我不知道如何预先分配它。当我尝试这样做时,Matlab 给了我另一个警告,说“变量似乎是预分配的,但这里不推荐预分配”。

我在循环之前使用此代码:

更加具体:

b如果条件不成立,我想成为一个 1x1 元胞数组,所以我需要a在每个循环中重置为一个空 var。

更新:

我找到了一种方法,由李的回答暗示,但仍然不知道为什么。使用a = [a(:),{'def'}];而不是a = [a,{'def'}];解决警告。