ijson
ijson copied to clipboard
More efficient alternative to `serde_json::Value` which saves memory by interning primitive values and using tagged pointers.
Checking `IValue::deserialize` it seems like `visit_map` does try to allocate the `IObject::with_capacity` but still every call to `HeaderMut::entry` also calls to `IObject::resize_internal`. Which I would expect should be avoided when...
ref #18
serde_json includes an `arbitrary_precision` feature flag which enables support for large integers. It seems an equivalent isn't available here, making `i64` the largest possible integer I ran into this while...
In case the string is less than 8 bytes, will storing the string and not a pointer will save some space? Also in some of the cases interning the IString...
We need to report in runtime the memory each IValue takes. What is the best way to calculate its overhead, even ignoring the IString intern? I tried to sum it...
It looks like there is currently a typo in `IValue::into_object` that causes the `IValue` to check if it is a number rather than an object before attempting to return itself...
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...
Getting the following error: ```bash $ cargo run --example generate --release Error: Os { code: 2, kind: NotFound, message: "No such file or directory" } ```