JMP 的设计初衷是实现程序、图形和数据之间的交互。因此,JMP 将所有内容都存储在内存中。
文件的物理大小并不能真正反映出存储数据所需的 RAM 量。例如,假设您的数据表只有 1 个数字列和 100 万行。仅保存数据所需的 RAM 量将计算为 10 * 1,000,000 = 10,000,000 或 10MB。字符数据按每个字符单元 n 个字节计算,其中 n 是该列中最大字符值的长度。
要确定数据表的大小,经验规则是:
- 所有数值将存储在 4 个字节(32 位)中。
- 所有字符字段的长度都将是列中最长的条目的长度。例如,如果大多数行是“是”和“否”(3 和 2 个字节),但有一个条目是“可能”(5 个字节),则所有行都将有空间容纳 5 字节条目。重新编码数据可以帮助解决这种情况,例如使用数字或字母代码并利用值标签表属性。
- 每列和数据表本身都需要一些小的开销。
还要注意,每个正在使用的数据表都在内存中,某些操作需要内存才能运行。例如,如果内存中已有两张大型数据表,然后尝试合并或连接它们,则可能会产生一个新的组合表,而该组合表可能会超出可用内存。另一种可能的情况是尝试对几乎填满现有内存的数据表进行大型分析(回归或相关分析),导致没有空间进行分析。
[先前的 JMP 说明 31493]