@@ -145,14 +145,13 @@ Semantics of deferred nodes (the usual native lazy-object rules):
145145 ` DeepClone\HydrationContext ` object that holds them. Abandoned graphs are
146146 reclaimed by the cycle collector.
147147
148- Cost model, measured against the previous fully-eager implementation
149- (20k-node graphs, PHP 8.4 release build): closure-rich graphs hydrate 4-6x
150- faster on creation and partial consumption, occupy 2-3x less memory while
148+ Cost model (20k-node graphs, PHP 8.4 release build): compared with
149+ resolving every closure inside the call, deferral makes closure-rich
150+ graphs 4-6x faster to create and partially consume, 2-3x smaller while
151151untouched (lazy shells plus the slot index weigh less than materialized
152- closures), and tear down about 2x faster when dropped untouched. A fully
153- traversed graph pays a comparable total (+12% in the worst measured case),
154- at first touch instead of inside the call. Graphs without closure markers
155- take the eager path bit for bit.
152+ closures), and about 2x faster to tear down when dropped untouched. A
153+ fully traversed graph pays a comparable total, at first touch instead of
154+ inside the call. Graphs without closure markers take the eager path.
156155
157156` deepclone_hydrate() ` accepts either an object to hydrate in place or a class
158157name to instantiate without calling its constructor. By default, PHP ` & `
0 commit comments