Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potential GC problem through use of gensym to generate blank nodes #59

Closed
RickMoynihan opened this issue May 11, 2021 · 0 comments
Closed

Comments

@RickMoynihan
Copy link
Member

When we generate blank nodes for various annotation data, we make use of clojure's gensym to generate unique names (within the processes execution).

gensym interns strings which for large inputs will cause at least one bnode per row. Interning these will make these strings less eligible for garbage collection, likely resulting in larger GC pauses etc.

There may be arguments for interning more commonly used URIs such as predicates and classes, to help reduce memory foot print but blank nodes will if anything have the opposite effect.

See also posts such as this: https://shipilev.net/jvm/anatomy-quarks/10-string-intern/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant