<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby-gems/json.git/java/src, branch pick-ruby-core</title>
<subtitle>github.com: flori/json
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/'/>
<entry>
<title>Merge decimal_class patch by Michael Jaschob</title>
<updated>2016-09-23T18:43:38+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-09-23T15:37:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=7e240ed5765867bfbdd166435f941a4cebed8cd8'/>
<id>7e240ed5765867bfbdd166435f941a4cebed8cd8</id>
<content type='text'>
Also:
- Avoid some issues with bundler
- Avoid some issues with jruby
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also:
- Avoid some issues with bundler
- Avoid some issues with jruby
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix issue #296 when parsing frozen strings</title>
<updated>2016-07-26T09:42:18+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-07-26T09:27:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=047814c7a6916bde393e6080c98385c8170d3f98'/>
<id>047814c7a6916bde393e6080c98385c8170d3f98</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Treat ASCII_8BIT as UTF-8 by default</title>
<updated>2016-06-03T17:48:15+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-06-03T11:54:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=cf466b8d4e4afe9af313e5c8bea4e97ef3170637'/>
<id>cf466b8d4e4afe9af313e5c8bea4e97ef3170637</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove quirks mode</title>
<updated>2016-06-02T19:11:23+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-06-02T19:10:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=7d2ad6d6556da03300a5aeadeeacaec563435773'/>
<id>7d2ad6d6556da03300a5aeadeeacaec563435773</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'v1.8'</title>
<updated>2016-02-25T09:27:44+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-02-25T09:27:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=8883a51ec7a56cd8bda87ab2c82924a90d7aa782'/>
<id>8883a51ec7a56cd8bda87ab2c82924a90d7aa782</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Call OBJECT_HANDLER for objects without #to_json</title>
<updated>2016-02-24T23:10:42+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2016-02-24T23:10:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=5fd6c4e168005c68995a97ef436725a01c42dfd9'/>
<id>5fd6c4e168005c68995a97ef436725a01c42dfd9</id>
<content type='text'>
as a last-ditch effort.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
as a last-ditch effort.</pre>
</div>
</content>
</entry>
<entry>
<title>Remove remnants of GPL licenses</title>
<updated>2015-09-10T23:58:19+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2015-08-18T09:21:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=2a6ec15be82172865090a26180e03d1f0c08e39a'/>
<id>2a6ec15be82172865090a26180e03d1f0c08e39a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove generate restriction for […]/{…}</title>
<updated>2015-06-13T10:55:29+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2015-06-13T10:55:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=4b843b585060212e8c396073f79627bf081491db'/>
<id>4b843b585060212e8c396073f79627bf081491db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve JRuby perf. by removing source of multithreaded contention</title>
<updated>2015-01-02T22:48:44+00:00</updated>
<author>
<name>Ben Browning</name>
<email>bbrownin@redhat.com</email>
</author>
<published>2014-12-16T15:12:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=737bb637c7accfb1a704bc15560ab8bb83fccfa4'/>
<id>737bb637c7accfb1a704bc15560ab8bb83fccfa4</id>
<content type='text'>
The RuntimeInfo.forRuntime method synchronizes all invocations and
ParserSession#parseString was calling this many times when parsing
large JSON strings. Thus, when running in a heavily multithreaded
environment, threads were spending a large portion of their time
waiting on that synchronization instead of doing work parsing the
JSON.

This fix simply passes in the RuntimeInfo object to the ParserSession
when it's instantiated, since the RuntimeInfo is already known and
we've already incurred the synchronization cost at that time.

Using the test script at
https://gist.github.com/bbrowning/0b89580b03a5f19e7a9f, I get the
following results before and after this fix on my machine:

Before:

    $ jruby ~/tmp/json_contention.rb
    337.920000 0.570000 338.490000 ( 57.955000)

After:

    $ jruby ~/tmp/json_contention.rb
    326.400000 0.580000 326.980000 ( 43.084000)

That's a 25% reduction in processing time for parsing the same JSON on
my quad core machine. I'd expect an even higher percentage improvement
on a machine with more CPUs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The RuntimeInfo.forRuntime method synchronizes all invocations and
ParserSession#parseString was calling this many times when parsing
large JSON strings. Thus, when running in a heavily multithreaded
environment, threads were spending a large portion of their time
waiting on that synchronization instead of doing work parsing the
JSON.

This fix simply passes in the RuntimeInfo object to the ParserSession
when it's instantiated, since the RuntimeInfo is already known and
we've already incurred the synchronization cost at that time.

Using the test script at
https://gist.github.com/bbrowning/0b89580b03a5f19e7a9f, I get the
following results before and after this fix on my machine:

Before:

    $ jruby ~/tmp/json_contention.rb
    337.920000 0.570000 338.490000 ( 57.955000)

After:

    $ jruby ~/tmp/json_contention.rb
    326.400000 0.580000 326.980000 ( 43.084000)

That's a 25% reduction in processing time for parsing the same JSON on
my quad core machine. I'd expect an even higher percentage improvement
on a machine with more CPUs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix documentation wording</title>
<updated>2014-07-03T09:35:24+00:00</updated>
<author>
<name>Florian Frank</name>
<email>flori@ping.de</email>
</author>
<published>2014-07-03T09:35:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/json.git/commit/?id=6da014149519902b2797a32c869690c7d4eec77e'/>
<id>6da014149519902b2797a32c869690c7d4eec77e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
