Issue #10761 has been updated by Nobuyoshi Nakada.

Status changed from Closed to Open
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: DONE to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED

r49386 is missing.

----------------------------------------
Bug #10761: Marshal.dump 100% slower in 2.2.0 vs 2.1.5
https://bugs.ruby-lang.org/issues/10761#change-51419

* Author: David Jenkins
* Status: Open
* Priority: High
* Assignee: 
* ruby -v: 2.2.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED
----------------------------------------
Calling Marshal.dump on a complex (nested) object 100 times shows the following: 

2.1.5
       		  user     system      total        real
Marshal Dump 24.350000   0.250000  24.600000 ( 29.330294)

2.2.0
                  user     system      total        real
Marshal Dump 50.450000   0.140000  50.590000 ( 52.268773)

To reproduce, put marshal_slow.rb and nested_ds.txt in same directory and run marshal_slow.rb.

I found that Marshal.dump only shows this kind of discrepancy on deeply nested objects.  The nested_ds.txt file is a dump of an object that contained a collection of sub objects of the same type.

---Files--------------------------------
nested_ds.txt (2.1 MB)
marshal_slow.rb (212 Bytes)
dataset_dump.txt (362 KB)
better_slow_marshal.rb (239 Bytes)
flonum-hash-fixup-r45384-v1 / r49365.patch (2.21 KB)


-- 
https://bugs.ruby-lang.org/