ijson icon indicating copy to clipboard operation
ijson copied to clipboard

Improve performance by making a none multi threaded version of `IString::itern`

Open gkorland opened this issue 3 years ago • 2 comments

From running some profiling it seems like most of the performance impact vs serde_json is related to the IString::itern.

And most of the overhead is due to the multi threaded code (i.e. locks)

image

image

gkorland avatar Jan 18 '22 10:01 gkorland

Interesting... It would be possible to make the types in this crate !Send unless a feature flag is enabled.

It might also be worth looking at how to improve the multithreaded performance - eg. dashmap 5.x uses parking_lot instead of its own custom lock implementation, so that might provide some performance benefit.

Diggsey avatar Jan 18 '22 12:01 Diggsey

I tried to upgrade to dashmap 5 but didn't see any impact.

gkorland avatar Jan 19 '22 06:01 gkorland