Comments (4)
Note that the parser holds the allocated memory. By reusing the parser from document to document, we reuse the allocated memory. The net result is to avoid memory reallocation, an expensive process. On some systems, it is more expensive to allocate memory than to parse JSON !
from cysimdjson.
Ok, after some digging, this is actually correct behaviour - it is linked with the SIMDJSON requirement for the lifecycle of the document, see the remark at https://simdjson.org/api/0.9.1/classsimdjson_1_1dom_1_1parser.html#ab3e5bbb1974a1932aead90ad63883a23
I will try to provide some kind of indication of this as per your suggestion.
from cysimdjson.
Thanks for reporting, we will look at that.
from cysimdjson.
You can see one approach to stopping this in pysimdjson, https://github.com/TkTech/pysimdjson/blob/master/simdjson/csimdjson.pyx#L437. It's likely not our final fix, since it's a bit buggy on pypy whose garbage collector might wait a long, long time to cleanup things pointing into the Parser's document even if it's been explicitly deleted. In @ROpdebee's example above, it would have raised a RuntimeError instead of a potential segfault.
from cysimdjson.
Related Issues (20)
- detailed documentation and examples HOT 8
- load to dict is slower than ujson HOT 1
- Get " ambiguous template specialization ‘get<>’" error when trying to install with PIP HOT 7
- please add __init__.py for type check HOT 2
- More wheels? HOT 1
- Error when installing 21.11b2 from pypi HOT 2
- Doesn't work on windows HOT 1
- Performance comparison from readme seems a bit unfair HOT 2
- implement JSONObject.get() HOT 1
- Segfault when installed from pip HOT 5
- Explode/Flatten to CSV example?
- GIL? HOT 1
- Doesn't build on Windows + MSVC HOT 4
- How to convert to a dict when needed? HOT 2
- Documentation for Pythonic drop-in API is wrong
- Memory leak HOT 18
- Create `export` to string or bytes function and expose it via C API
- Feature Request: add Typing / Type Stubs support? HOT 1
- Accessing results outside of scope where parser was referenced leads to segfault? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cysimdjson.