[#67346] Future of test suites for Ruby — Charles Oliver Nutter <headius@...>

I'll try to be brief so we can discuss all this. tl;dr: RubySpec is

19 messages 2015/01/05

[ruby-core:67733] [ruby-trunk - Bug #10761] Marshal.dump 100% slower in 2.2.0 vs 2.1.5

From: normalperson@...
Date: 2015-01-21 22:20:12 UTC
List: ruby-core #67733
Issue #10761 has been updated by Eric Wong.

File [email protected] added
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: REQUIRED

Using Marshal.load on untrusted data is too risky for me,
so I only tested your last test case:

$ ./patched/ruby --disable=gems /tmp/marshal.rb
real    0m0.311s
user    0m0.308s
sys     0m0.002s

$ ~/ruby-2.1/bin/ruby --disable=gems /tmp/marshal.rb
real    0m0.354s
user    0m0.351s
sys     0m0.002s

patch (also attached):
http://80x24.org/spew/m/[email protected]

benchmark suite results (with new benchmarks for flonum keys):
http://80x24.org/spew/m/8d1ad66566f9e76b07e000e8dd335b9ebcb06b01.txt

I'll commit soon unless there's problems.


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

* 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)
[email protected] (2.21 KB)


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

In This Thread

Prev Next