我们知道整数存储长度是 4 个字节,字符存储是 1 个字节。我的问题来了,我有一个巨大的数据,我需要将它们写入一个文件。
例如。我的数据就像
Integers - 123456789 (of length 9) (Total 9! factorial records)
Character - abcdefghi (of length 9) (Total 9! factorial records)
哪一个会花费更少的处理时间?有什么想法吗...
我们知道整数存储长度是 4 个字节,字符存储是 1 个字节。我的问题来了,我有一个巨大的数据,我需要将它们写入一个文件。
例如。我的数据就像
Integers - 123456789 (of length 9) (Total 9! factorial records)
Character - abcdefghi (of length 9) (Total 9! factorial records)
哪一个会花费更少的处理时间?有什么想法吗...
与文件的访问时间相比,它微不足道。
看起来处理时间是一样的,因为你有相同的字节!文件存储在硬盘驱动器中,而不是存储在 RAM 中。
如果您的整数存储在单独的 32 位整数中并将它们保存为二进制,则每个整数有 4 个字节,并且没有转换开销。如果您的字符串存储在 9 个字符的数组中并按原样保存,则每个字符串有 9 个字节,并且没有转换开销。在这种情况下,字符串将比整数花费更多的 I/O 时间。
如果将整数转换为可读的 9 字符字符串并以与其他字符串相同的方式保存它们,则 I/O 时间将相同,但将整数转换为文本所需的处理时间会额外增加。
使用整数将为您节省一些空间,也可能会节省一些时间,但它会太小以至于您不会注意到。因为整数需要 4 个字节,9 个字符需要 9 个字节。因此,对于每个值,您将使用 5 个额外字节。因为你的数据集的长度是9!= 362880,因此您将浪费362880*5字节,即 1.73 MB。这是非常小的块,将其写入磁盘不会引起注意。因此,请根据更适合您的内容来选择整数或字符,而不是根据哪个更快,因为您不会注意到这种大小的数据集的差异。