perl中解码和编码json的速度

use*_*331 0 perl performance json encode decode

我正在研究一个小的perl脚本.我使用JSON存储数据.

我使用from_json编码来解码JSON字符串to_json.

更具体:

数据规模可能类似于散列中的100,000个项目

数据存储在磁盘中的文件中.

所以要解码它,我必须先从磁盘上读取它


我的问题是:

解码和编码过程之间的速度存在巨大差异.

编码过程似乎比解码过程快得多.

我想知道是什么造成了这种差异?

Fre*_*Dog 5

解析比格式化计算成本更高.

from_json必须解析json结构并将它们转换为perl数据结构,to_json只需迭代数据结构并以格式化方式"打印"出每个项目.

解析是一个复杂的主题,仍然是CS理论工作的重点.但是在基础级别,解析是一个两步操作.您需要解析令牌的输入流,然后将令牌序列验证为该语言中的有效语句.另一方面,编码是单步操作,您已经知道它是有效的,您只需将其转换为表示.

  • 除法是乘法的逆,但是一个在计算上比另一个更昂贵. (2认同)