Hallo,
weiß jemand, wie man diese Methode: https://github.com/sirixdb/sirix/bl...in/java/org/sirix/node/SirixDeweyID.java#L507
optimieren kann, da die Serialisierung bei ca. 310_000_000 Knoten in einem Test ca. 18% der CPU-Zeit schluckt (mittels YourKit Profiler geschaut) und insgesamt der Import einer JSON Datei dadurch von ca. 4 Minuten auf ca. 6 Minuten sogar steigt?
DeweyIDs sind hierarchische Knoten-Labels der Form: 1.3.1.3, 1.3.1.5 ... usw., d.h. aufgrund der labels kann man bspw. gleich sagen, welcher Baum-Knoten in preorder bspw. vorher kommt, was die ancestor Knoten sind usw.:
Ich nutze auch schon Java 18. Vermutlich könnte man sogar irgendwas mit der Vector-API versuchen? Die Klasse hatte ich damals von BrackitDB übernommen, einem XML-Datenbanksystem und wollte das auch für JSON-Daten zumindest optional haben, da ich hier dann bspw. gleich effizient ermitteln kann, ob in einem Subbaum eines Knotens eine Änderung stattfand (zusammen mit Hashes über die gesamte Baumstruktur), die Änderungen gleich sortiert werden können, wie man sie bspw. in einem preorder-Durchlauf erhalten würde usw..
Beste Grüße
Johannes
weiß jemand, wie man diese Methode: https://github.com/sirixdb/sirix/bl...in/java/org/sirix/node/SirixDeweyID.java#L507
optimieren kann, da die Serialisierung bei ca. 310_000_000 Knoten in einem Test ca. 18% der CPU-Zeit schluckt (mittels YourKit Profiler geschaut) und insgesamt der Import einer JSON Datei dadurch von ca. 4 Minuten auf ca. 6 Minuten sogar steigt?
DeweyIDs sind hierarchische Knoten-Labels der Form: 1.3.1.3, 1.3.1.5 ... usw., d.h. aufgrund der labels kann man bspw. gleich sagen, welcher Baum-Knoten in preorder bspw. vorher kommt, was die ancestor Knoten sind usw.:
Ich nutze auch schon Java 18. Vermutlich könnte man sogar irgendwas mit der Vector-API versuchen? Die Klasse hatte ich damals von BrackitDB übernommen, einem XML-Datenbanksystem und wollte das auch für JSON-Daten zumindest optional haben, da ich hier dann bspw. gleich effizient ermitteln kann, ob in einem Subbaum eines Knotens eine Änderung stattfand (zusammen mit Hashes über die gesamte Baumstruktur), die Änderungen gleich sortiert werden können, wie man sie bspw. in einem preorder-Durchlauf erhalten würde usw..
Beste Grüße
Johannes