在这个Ruby 1.8.7应用程序中,需要进行YAML反序列化(使用YAML.load
完成),因为现有数据存储在许多相对较小的YAML文档中,但却是性能瓶颈。
有没有更好的方法或图书馆?升级到ruby 1.9不是一种选择。
答案 0 :(得分:2)
我不是专家,但如果您可以将YAML文档转换为Marshal文档,然后在应用程序中使用Marshal.load
,那么它应该更快。我曾用this gist一段时间来比较YAML和Marshal的表现。
答案 1 :(得分:1)
我没有办法做到这一点。我已经尝试通过字符串操作将YAML转换为JSON,然后使用快速JSON解析器(如Yajl和OJ)解析它,但是将YAML转换为JSON的开销已经比实际解析YAML的时间长。
我的转换脚本可能没有那么快,如果有人聪明地花了很多时间来做这件事,但是在我意识到即使我优化了自己的脚本之后我仍然放弃了它,它仍然不会不能大大超过YAML解析时间以保证整个方法。
答案 2 :(得分:0)
根据this experiment,使用1.8.7下的ZAML将比YAML解析器更快。