我有一个复杂的对象,my_object,我与Mashalling在红宝石2.2.0慢2.1.5
Marshal.dump(my_object)编组
我已基准调用该线100的性能在这两个2.1.5p273和2.2.0,以及下面的时间是结果:
2.1.5
user system total real
Marshal Dump 7.310000 0.120000 7.430000 ( 8.988470)
Marshal Dump 7.520000 0.050000 7.570000 ( 8.210356)
Marshal Dump 7.610000 0.050000 7.660000 ( 8.432685)
2.2.0
user system total real
Marshal Dump 26.480000 0.150000 26.630000 (29.591742)
Marshal Dump 24.100000 0.300000 24.400000 (28.520397)
Marshal Dump 26.210000 0.210000 26.420000 (29.993412)
(我跑了基准3次,每次版本,以彻底)
正如你所看到的,它带我去在2.2.0比2.1.5中超过3倍。我对Marshal.dump进行了调整,因为使用ruby-prof宝石,它告诉我那是表现不佳的行;但是我找不到一种方法来获取Marshal.dump本身在探查器中调用的方法。
编辑:见我的答案以最小的摄制,多次实验
对于那些想要遵循这一点的人,我将其缩减为最低限度的repro,并将其记录在此处:https://bugs.ruby-lang.org/issues/10761。这个问题似乎并不是规模,而是复杂性,因为我必须创建一个包含多层嵌套对象的对象来重现问题。 – davej 2015-01-21 05:15:52
你编辑的方式使原始问题消失,这个问题......好吧,这不是一个问题,它基本上是一个答案。我认为整个事情很有趣,但对于SO标准,我认为它应该是一个倒退。 – iain 2015-01-21 16:31:00
@ian:真的吗?我的选择留下了一个并没有真正帮助任何人的问题,或者发布了一些我认为是非常重要的问题,或者删除了整个问题。我做了我认为对社区最好的事情。坦率地说,像你这样的小事给了极客一个不好的代表。 – davej 2015-01-21 16:36:27