Issue #10302 has been updated by Hiroshi SHIBATA.

Status changed from Open to Assigned

----------------------------------------
Feature #10302: [PATCH] marshal.c: lazy compat_tbl allocation
https://bugs.ruby-lang.org/issues/10302#change-52559

* Author: Eric Wong
* Status: Assigned
* Priority: Normal
* Assignee: Eric Wong
----------------------------------------
Will commit in a few days.

In some common cases, `compat_tbl` is unused in `dump_arg`/`load_arg`,
so avoid malloc/free costs for the unused table.

~~~
ruby -e 'h = {a: :b}; 600000.times { Marshal.load(Marshal.dump(h)) }'

before:
	real    0m2.458s
	user    0m2.450s
	sys     0m0.006s

after:
	real    0m2.122s
	user    0m2.110s
	sys     0m0.011s
~~~

---Files--------------------------------
0001-marshal.c-lazy-compat_tbl-allocation.patch (4.26 KB)


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