问题标签 [memory-efficient]

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 回答
8242 浏览

delphi - 如何设计具有可变数据大小的 FIFO 队列?

我只是在处理具有可变数据大小的 FIFO 队列(简单的队列,只是先推送的内容,首先弹出),但我不确定我设计它的方式。我将存储在那里的数据类型将提前知道,假设对于此类的每个实例都是相同的。我正在考虑使用 TList 来存储具有以下定义的记录(@David - 它适用于 D2007,所以我没有可用的Generics.Collections :)

使用这样的实现(我在这里假装一切正常,所以没有使用异常处理)

我的问题是:

这是如何制作大小从几个字节到大约 1MB(如果是流)的 FIFO 队列(对于字符串、流、记录等数据类型)的有效方法吗?

非常感谢

0 投票
4 回答
189 浏览

python - 这是一种高效的 MySQL 数据库设计吗?

我正在做一个项目,其中我有一组关键字 [abc, xyz, klm] `。我还有一堆内容为 [1.txt, 2.txt, 3.txt] 的文本文件

我正在做的是将关键字与文本文件碰撞以找到关键字出现的行,并且可以多次这样做。所以我想ID (text file name without .txt), Extracted_Data, Line_Number, Spwaned_Across (keyword may be spread across 2 lines)为每次出现存储。

我决定为每个关键字创建一个表来存储这些数据。

表:abc、xyz、klm

表 abc 样本数据:

所以我最终为每个关键字制作了一个表格。在我的项目中,大约有 150 个关键字,并且可以增长。所以150张桌子。

为什么我选择这样做?

现在,我需要查找关键字是否存在于文件中,并且我确信将来我会被要求显示它在文件中的位置或方式。我计划为每个新关键字自动创建一个表格,这样我就不必手动创建每个关键字或一个包含 100 列的巨型表格。

我做出了正确的决定吗?非常感谢您的意见。

0 投票
6 回答
3909 浏览

c - Pthreads - 高内存使用

我正在用 C 编写一些东西,它在 256Mb 系统上的 Linux 中创建了很多 Pthread。我通常有 +200Mb 的免费空间。

当我用少量线程运行程序时,它可以工作,但是一旦我让它创建大约 100 个线程,它就会出错,因为系统内存不足。我做了几个测试,每个线程都使用了将近 2Mb。线程的堆栈大小设置为 16Kb。

我用来创建每个线程的代码:

这是正常的还是我错过了什么?谢谢。

0 投票
2 回答
11249 浏览

sql - 更新 db2 数据库行的有效方法

我有一张有 9200 万行的表。我有该表中需要更新数据的 4000 个 ID 的列表。我将 4000 个 ID 放入他们自己的表中并尝试运行以下命令:

但是由于内存限制,这会失败。所以我尝试将 4000 个 ID 拆分为 4 个表,每个表有 1000 个,如果我在那些较小的表上尝试它仍然会失败。处理这么大的桌子最有效的方法是什么?

谢谢。

0 投票
1 回答
231 浏览

hash - 哈希效率

我想将 pxq 字节的数据存储在哈希中。

哪个更有效率?

具有 pxq 个条目的散列每个存储一个字节或具有 p 个条目的散列每个存储 q 个字节的数据

键是稀疏的内存地址

0 投票
5 回答
463 浏览

performance - 为什么空头只能持有 65,536 个可能的值?

我知道,短整数可以有 65,536 个可能的整数,但为什么不能有 255,256 个可能的值(0 到 255,255 无符号)?我看到你可以这样做:

2字节整数

有人已经想到这个了吗?为什么不使用它?

0 投票
5 回答
570 浏览

algorithm - 使用次线性内存生成排列

我想知道是否有一个足够简单的算法来生成 N 个元素的排列,比如说1..N,它使用的内存少于O(N)内存。它不必计算第 n 个排列,但它必须能够计算所有排列。

当然,这个算法应该是某种生成器,或者使用一些使用较少O(N)内存的内部数据结构,因为将结果作为一个大小的向量返回N已经违反了对亚线性内存的限制。

0 投票
2 回答
3781 浏览

c++ - 如何使线性探测的哈希表更有效?

我正在尝试实现一个有效的哈希表,其中使用带步长的线性探测来解决冲突。该功能必须尽可能高效。没有不必要的===操作。我的代码正在运行,但效率不高。这种效率由公司内部系统评估。它需要更好。

有两个类表示键/值对:CKeyCValue. 这些类每个都有一个标准构造函数、复制构造函数和重写的运算符===. 它们都包含一个getValue()返回内部私有变量值的方法。getHashLPS()里面还有一个方法CKey,它返回哈希表中的哈希位置。

哈希表。

方法

这两个函数都返回冲突计数(出于我自己的目的),并且-1当搜索CKey的对象不在表中或表已满时它们会返回。

墓碑是禁止的。删除后重新散列是必须的。

0 投票
2 回答
2807 浏览

r - 宽格式数据还是长格式数据更有效?

我只是好奇,不管解释如何,以长格式或宽格式存储数据是否更有效?我曾经object.size()确定内存中的大小,但它们没有显着差异(长在大小方面效率稍高),并且该值仅是估计值。

除了原始大小之外,我还想知道哪种格式在用于建模时更有效地被操纵。

0 投票
7 回答
1802 浏览

c++ - 我怎样才能在内存中恰好有 2 位?

我应该能够将一个值存储在一个可以从 0 到 3 的数据结构中。所以我需要 2 位。这个数据结构我会很大2^16个位置。所以,我想要 2 ^ 16 * 2(位)。在 C++ 中,您是否曾经在内存中恰好有 2 位?