@adobe/data 0.9.52 → 0.9.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +1 -1
  2. package/dist/cache/data-cache.js +26 -6
  3. package/dist/cache/data-cache.js.map +1 -1
  4. package/dist/cache/data-cache.test.js +12 -1
  5. package/dist/cache/data-cache.test.js.map +1 -1
  6. package/dist/cache/managed-array.js +72 -68
  7. package/dist/cache/managed-array.js.map +1 -1
  8. package/dist/ecs/archetype/create-archetype.js +131 -7
  9. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  10. package/dist/internal/typed-array/get-byte-size.d.ts +1 -1
  11. package/dist/observe/to-promise.js +12 -4
  12. package/dist/observe/to-promise.js.map +1 -1
  13. package/dist/observe/to-promise.test.d.ts +1 -0
  14. package/dist/observe/to-promise.test.js +34 -0
  15. package/dist/observe/to-promise.test.js.map +1 -0
  16. package/dist/perftest/ecs1-perf.d.ts +54 -0
  17. package/dist/perftest/ecs1-perf.js +214 -0
  18. package/dist/perftest/ecs1-perf.js.map +1 -0
  19. package/dist/perftest/ecs2-perf.d.ts +5 -0
  20. package/dist/perftest/ecs2-perf.js +162 -0
  21. package/dist/perftest/ecs2-perf.js.map +1 -0
  22. package/dist/perftest/index.js +8 -3
  23. package/dist/perftest/index.js.map +1 -1
  24. package/dist/perftest/perf-test.d.ts +7 -0
  25. package/dist/perftest/perf-test.js +69 -7
  26. package/dist/perftest/perf-test.js.map +1 -1
  27. package/dist/perftest/typed-buffer-perf.d.ts +8 -0
  28. package/dist/perftest/typed-buffer-perf.js +133 -0
  29. package/dist/perftest/typed-buffer-perf.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +2 -2
  32. package/references/data-lit/package.json +1 -1
  33. package/references/data-lit-tictactoe/package.json +1 -1
  34. package/references/data-react/package.json +1 -1
  35. package/references/data-react-hello/package.json +1 -1
  36. package/references/data-react-pixie/package.json +1 -1
@@ -0,0 +1,133 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { createNumberBuffer } from "../typed-buffer/create-number-buffer.js";
3
+ import { createArrayBuffer } from "../typed-buffer/create-array-buffer.js";
4
+ import { createStructBuffer } from "../typed-buffer/create-struct-buffer.js";
5
+ import { F32 } from "../math/f32/index.js";
6
+ const Vec3Schema = {
7
+ type: "object",
8
+ properties: {
9
+ x: F32.schema,
10
+ y: F32.schema,
11
+ z: F32.schema,
12
+ },
13
+ required: ["x", "y", "z"],
14
+ };
15
+ // number buffer get+set sweep — direct typed-array baseline through TypedBuffer.
16
+ const numberBufferGetSet = () => {
17
+ let buffer;
18
+ let count = 0;
19
+ let sink = 0;
20
+ const setup = async (n) => {
21
+ count = n;
22
+ buffer = createNumberBuffer(F32.schema, n);
23
+ for (let i = 0; i < n; i++) {
24
+ buffer.set(i, i + 1);
25
+ }
26
+ };
27
+ const run = () => {
28
+ let total = 0;
29
+ for (let i = 0; i < count; i++) {
30
+ total += buffer.get(i);
31
+ }
32
+ sink ^= total | 0;
33
+ for (let i = 0; i < count; i++) {
34
+ buffer.set(i, buffer.get(i) + 1);
35
+ }
36
+ };
37
+ const cleanup = async () => { sink = 0; };
38
+ return { setup, run, cleanup, type: "move" };
39
+ };
40
+ // array buffer get+set with object payloads — non-typed-array baseline.
41
+ const arrayBufferGetSet = () => {
42
+ let buffer;
43
+ let count = 0;
44
+ let sink = 0;
45
+ const setup = async (n) => {
46
+ count = n;
47
+ buffer = createArrayBuffer(Vec3Schema, n);
48
+ for (let i = 0; i < n; i++) {
49
+ buffer.set(i, { x: i + 1, y: i + 1, z: i + 1 });
50
+ }
51
+ };
52
+ const run = () => {
53
+ let total = 0;
54
+ for (let i = 0; i < count; i++) {
55
+ const v = buffer.get(i);
56
+ total += v.x + v.y + v.z;
57
+ }
58
+ sink ^= total | 0;
59
+ };
60
+ const cleanup = async () => { sink = 0; };
61
+ return { setup, run, cleanup, type: "move" };
62
+ };
63
+ // struct_get — read every element and accumulate a sink to defeat DCE.
64
+ const structBufferGet = () => {
65
+ let buffer;
66
+ let count = 0;
67
+ let sink = 0;
68
+ const setup = async (n) => {
69
+ count = n;
70
+ buffer = createStructBuffer(Vec3Schema, n);
71
+ for (let i = 0; i < n; i++) {
72
+ buffer.set(i, { x: i + 1, y: i + 2, z: i + 3 });
73
+ }
74
+ };
75
+ const run = () => {
76
+ let total = 0;
77
+ for (let i = 0; i < count; i++) {
78
+ const v = buffer.get(i);
79
+ total += v.x + v.y + v.z;
80
+ }
81
+ sink ^= total | 0;
82
+ };
83
+ const cleanup = async () => { sink = 0; };
84
+ return { setup, run, cleanup, type: "move" };
85
+ };
86
+ // struct_set — write every element from a fixed literal.
87
+ const structBufferSet = () => {
88
+ let buffer;
89
+ let count = 0;
90
+ const literal = { x: 1, y: 2, z: 3 };
91
+ const setup = async (n) => {
92
+ count = n;
93
+ buffer = createStructBuffer(Vec3Schema, n);
94
+ };
95
+ const run = () => {
96
+ for (let i = 0; i < count; i++) {
97
+ buffer.set(i, literal);
98
+ }
99
+ };
100
+ const cleanup = async () => { };
101
+ return { setup, run, cleanup, type: "move" };
102
+ };
103
+ // struct_round_trip — get, mutate, set. Mirrors the per-frame ECS pattern.
104
+ const structBufferRoundTrip = () => {
105
+ let buffer;
106
+ let count = 0;
107
+ const setup = async (n) => {
108
+ count = n;
109
+ buffer = createStructBuffer(Vec3Schema, n);
110
+ for (let i = 0; i < n; i++) {
111
+ buffer.set(i, { x: i + 1, y: i + 1, z: i + 1 });
112
+ }
113
+ };
114
+ const run = () => {
115
+ for (let i = 0; i < count; i++) {
116
+ const v = buffer.get(i);
117
+ v.x += 1;
118
+ v.y += 1;
119
+ v.z += 1;
120
+ buffer.set(i, v);
121
+ }
122
+ };
123
+ const cleanup = async () => { };
124
+ return { setup, run, cleanup, type: "move" };
125
+ };
126
+ export const typed_buffer = {
127
+ number_get_set: numberBufferGetSet(),
128
+ array_get: arrayBufferGetSet(),
129
+ struct_get: structBufferGet(),
130
+ struct_set: structBufferSet(),
131
+ struct_round_trip: structBufferRoundTrip(),
132
+ };
133
+ //# sourceMappingURL=typed-buffer-perf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-buffer-perf.js","sourceRoot":"","sources":["../../src/perftest/typed-buffer-perf.ts"],"names":[],"mappings":"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"}