如何最小化数字格式的整数表的大小?需要保存的表都是整数。
谢谢!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << delete columns( 1 :: 3 );
New Column( "A" );
Column( "A" ) << Formula( 1000 + Row() );
dt << run formulas;
Column( "A" ) << deleteFormula;
脚本Re: 如何最小化数字格式的整数表的大小?最小化内存还是磁盘?
在内存中:使用短数字格式 numeric(1)、numeric(2) 或 numeric(4)。它们指定了一个相同字节数的有符号整数,并带有一些保留值以供缺失。 它们都小于一个双精度数(8 字节),它可以表示高达 ~50 位的整数……比 8/16/32 位范围大得多。 还可以节省磁盘空间。 (我认为这不是必需的,但社区中最近的一条评论说,必须启用短数字的首选项才能使用它们。 打开 pref 后,在创建列时查看可用的数字类型,并查看保存的 JSL。 范围大致为 +/-126、+/-32000、+/-2e9。)
在磁盘上:使用压缩。 两种方法,要么使用红色三角形对所有列进行类似 zip 的压缩,要么使用 compress-columns 实用程序查看列是否具有可以表示为查找的有限数量的值。 zip 方法在保存时速度较慢,在解压缩时速度较快,但不如加载未压缩数据的速度快。
您可以使用数字(1 或 2 或 4)和如果 zip 可以挤出的数据中仍然存在一些冗余,则将文件压缩到良好的效果。 但它已在内存中解压缩,因此在那里无济于事。
Re: 如何最小化数字格式的整数表的大小?感谢克雷格!
我需要减小存储在硬盘上的文件的大小。但我不知道如何使用 JSL 来做到这一点。
Re: 如何最小化数字格式的整数表的大小?我使用 GUI 制作了一个文件,将列设置为 numeric(1) 并使用红色三角形请求在磁盘上进行压缩。 然后我抓住了剧本。
New Table( "Untitled",
Add Rows( 0 ),
Compress File When Saved( 1 ),
New Column( "Column 1", Numeric( 1 ), "Continuous", Set Selected )
)