summaryrefslogtreecommitdiff
path: root/test/json
diff options
context:
space:
mode:
authorWatson <watson1978@gmail.com>2018-03-02 00:51:30 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-10-14 19:54:48 +0900
commit40724d7d10e9902fcdc4149326acbfe4dd95d3c7 (patch)
treeb99d5aec6ce05b3e36e4869581b12a3979cc53c3 /test/json
parent641136c4af89ec2bc1f2c80aeefc7a38f3bc48df (diff)
[flori/json] Convert String encoding using `rb_str_encode()`
`rb_funcall` might be slightly heavy to call the Ruby method. This patch will convert String encoding using `rb_str_encode()` instead of `rb_funcall()`. ## Before ``` $ ruby bench_json_generate.rb Warming up -------------------------------------- json 78.000 i/100ms Calculating ------------------------------------- json 789.781 (± 2.7%) i/s - 3.978k in 5.041043s ``` ## After ``` $ ruby bench_json_generate.rb Warming up -------------------------------------- json 129.000 i/100ms Calculating ------------------------------------- json 1.300k (± 2.3%) i/s - 6.579k in 5.064656s ``` ## Code ``` require 'json' require 'benchmark/ips' obj = [] 1000.times do |i| obj << { "id" => i, :age => 42, } end Benchmark.ips do |x| x.report "json" do |iter| count = 0 while count < iter JSON.generate(obj) count += 1 end end end ``` https://github.com/flori/json/commit/9ae6d2969c
Diffstat (limited to 'test/json')
0 files changed, 0 insertions, 0 deletions