问题标签 [space-efficiency]

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 投票
1 回答
897 浏览

java - 合并排序是否有节省空间的实现?

我刚刚编写了这个合并排序的工作版本:

但是,如果您注意到,我使用 copyOfRange 函数创建一个新数组,该数组是父数组某个部分的副本。java中是否有比这更节省空间的合并排序实现?

0 投票
1 回答
74 浏览

mysql - 使用 BIT 作为 INT 以提高存储卷效率

如果我理解正确,那么BIT磁盘效率非常高。就我而言,我知道我将始终只有三个我想处理的值,例如INTs: 1, 2, & 3

我是b'00'正确3b'0'1

如果我尝试使用s 和s 的INT值,mysql 会在这些查询中自动转换为 s 吗?INSERT VALUESELECT WHEREBIT

0 投票
1 回答
165 浏览

mysql - BIT 会填充 1 个字节后的未使用空间吗?

我的表可能会有非常大的行长度。如果我没看错,BIGINT值为 的 a1将占用全部 8 个字节。 http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html

这似乎非常低效。

行为是否BIT相同,还是可变长度混合?我知道使用少于 1 个完整字节仍会消耗 1 个字节的磁盘空间,除非有其他BITs,例如,BIT 1如果我正确阅读,8 列将只占用 1 个字节。

换句话说,如果我BIT 41没有其他BIT列,0那么该列的行会消耗 1 个字节还是完整的 6 个字节,而不是 2^41-1,它当然会占用完整的 41 位?

0 投票
4 回答
163 浏览

c# - 如何使一定数量的变量具有不同的名称?

我已经开始用 C# 编程来开发一些控制台应用程序,我想知道如何以更有效的方式制作一定数量的具有不同名称的变量。现在我正在做这样的事情:

我只是想知道是否有更有效的方法来解决这个问题以及这些方法是什么。

0 投票
2 回答
1178 浏览

php - 将大整数从 php 存储到 mysql 的最节省空间的方法?

我正在处理最长 128 位的整数。它们用于存储大量标志,我不需要对它们进行任何奇怪的数学运算,因此我可以将其视为 php 中的字符串来绕过 PHP_INT_MAX 限制。

我想将这些数字存储在 mysql 的 BINARY 列中。该列需要 4-16 个字节来保存数字。

我的理解是 php 中的 BINARY 列是二进制字符串,这是否意味着我不使用 az 作为字符集的一部分会浪费空间?我应该使用不同类型的列吗?我是否需要在 php 中进行 base_convert 才能充分利用字符集?

如何将 php 中 128 位整数的字符串表示形式最有效地存储到 php 中的 128 位列中?

此外,如果我存储的大约一半整数只需要 4 个字节,那么使用 VARBINARY 列会更好吗?

0 投票
3 回答
1205 浏览

java - Java字节/字节数组空间效率比较

我需要为大量 8 位值创建一个节省空间的二维数组。我开始使用几层抽象和泛型来编写我的类,以允许代码重用。一旦我开始实现具体类,我就想到我不能将原始类型作为泛型类参数传递,我将不得不使用包装类。因为我关心空间效率,所以我需要知道:使用包装类的数组与原始数组相比,空间效率有什么区别Byte byte

0 投票
2 回答
758 浏览

java - 如何读取输入的每一行并按排序顺序输出它们?

重复行的打印次数应与它们在输入中出现的次数相同。需要特别注意,以使具有大量重复行的文件使用的内存不会超过唯一行数所需的内存。

我已经尝试了所有收集界面,但似乎没有一个适用于这个问题:(有人可以帮我吗??谢谢。

下面的代码内存效率低,因为它在 PriorityQueue 中存储了重复的行。希望这可以帮助

0 投票
4 回答
1486 浏览

java - 地图列表:高效的实现

我有创建和使用集合的代码,例如:

这个地图列表由n 个地图填充,每个地图代表数据库中的一行。每一行都表示为字段名称和字段对应的对象之间的映射(在这种情况下,类型无关)。可能缺少某些字段。字段数m总是远小于行数 ( n ≈ 10000 × m )。我需要多次重复使用同一个集合来读取所有行,所以我不能只使用某种惰性迭代器。

是否有有效的数据结构来存储它?Guava 提供了一个Table集合,但这似乎不符合要求。我正在考虑创建一个界面,例如:

然后创建一个使用一个的实现,Map<String,List<Object>>这样我只实例化m个列表而不是n 个映射,并且仅在需要时动态创建映射,但我想知道是否有更通用的数据结构。

谢谢

0 投票
1 回答
365 浏览

java - HPROF结果解读

我有两组 HProf 转储,一组用于大样本,另一组用于较小样本 - 两者都是我拥有的大量数据的非常小的样本的结果。我试图找出我方法中的瓶颈。

这是我的大( http://pastebin.com/PEH8yR3v)和小样本(http://pastebin.com/aR8ywkDH )的堆分配数据。

我注意到 char[] 是占用我大部分内存的那个。此外,char[] 占用的内存百分比从小样本运行到大样本运行不等。我不知道当我分析我的整个样本时它会如何变化。

但是,我关心的重要问题是 - 当我尝试运行一个 3GB 大小的输入数据(它写回 10GB 数据)时,使用这个程序(READ、PARSE/PROCESS、WRITE)。除了大小不超过 1GB 的列表外,我不会在内存中存储任何内容 - 这是普通的读取、处理、写入管道。鉴于此,我的程序在运行时仍需要大约 7GB 的主内存。

这是我的做法,

由于在 myFunction 中创建的对象将在 myFunction 结束时超出范围,因此我不会注意删除/释放它们。各位有没有感觉到瓶颈?

0 投票
1 回答
497 浏览

performance - 为什么我的日期维度表没用?(对 PostgreSQL 存储的困惑......)

我已经查看了大约 4 次,但仍然对这些结果感到困惑。

看看以下(我最初发布在这里

日期维度表——

测试表——

混乱 -

为什么由一堆小整数组成的表格与由一堆日期组成的表格大小相同?而且我应该提到,之前,什么时候dim_calendar.id是正常的SERIAL,它给出了相同的27MB结果。

此外,更重要的是——为什么769411带有单个 smallint 字段的记录的表的大小27MB> 32bytes/record???

PS 是的,我将拥有数十亿(或至少数亿)条记录,并且正在尝试尽可能地增加性能和空间优化。

编辑

这可能与它有关,所以把它扔在那里——