You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When we generate blank nodes for various annotation data, we make use of clojure's gensym to generate unique names (within the processes execution).
gensyminterns 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.
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/
The text was updated successfully, but these errors were encountered: