Browse Source

perf(jsonl): shorten cooperative decode slices

imccyu 1 month ago
parent
commit
2551b757fb

+ 1 - 1
packages/core/session/src/index.ts

@@ -203,7 +203,7 @@ export function snapshotSessionEvent<T extends SessionEvent>(event: T): T {
   return adoptSessionEvent(structuredClone(event))
 }
 
-/** Deep-freeze one acyclic object tree materialized by JSON parsing. */
+/** Deep-freeze one acyclic object tree materialized by JSON parsing. input is stackoverflow-safe */
 function freezeRestoredObject<T>(value: T): T {
   Object.freeze(value)
   for (const key in value) {

+ 2 - 1
packages/session-persistence/session-persistence-jsonl/src/index.ts

@@ -34,7 +34,8 @@ export type { JsonlCompression } from './format.ts'
 
 const DEFAULT_PACK_CHUNKS = true
 const DEFAULT_COMPRESSION: JsonlCompression = 'zstd'
-const ZSTD_DECODE_YIELD_INTERVAL_MS = 1000
+/** internal yield interval. */
+const ZSTD_DECODE_YIELD_INTERVAL_MS = 500
 
 /** Assert that the independently decodable first frame contains only the header record. */
 function assertZstdHeaderFrame(plaintext: Buffer): void {