如果我缩短哈希中每个密钥名称的长度,会缩短该哈希的读/写时间吗



我正在构建一个大散列(大约300000个键和值(。我想知道,如果我有人类可读的密钥名称,比如::some_description_of_the_key,有些大约是30个字符,那么哈希的读/写处理时间是否会改变。

或者缩短序列号系统的密钥(:0_1:1_1作为一个基本示例(会有好处吗?

假设的优点是每个键的字符长度要短得多。

简而言之,如果您的键当前是字符串、数字或符号而不是对象,它会减小大小,但不太可能提高性能。如果您的密钥是一个模型或其他对象,我建议更改它,因为它确实会增加开销。如果我们谈论的是之间的区别

{ my_very_long_key_or_something: “”}

{ 1447 => “” }

然后保存的字节数等于减少的字符数。因此,对于300k张唱片,每个15个字符的节省量将为4.29Mb。如果你正在处理内存不足的问题,而这种节省是一个好处,那么就去做吧。不过,我真的建议你透露密钥,让它变得可以理解。

同样,前提是您的密钥不是对象;您的读/写问题更有可能与值的大小(对于对象或嵌套哈希(或您对哈希的处理有关。您可以尝试使用基准测试来比较性能:

Benchmark.ms { my_hash.process }

相关内容

  • 没有找到相关文章

最新更新