bumparena 0.0.7 → 0.0.8
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.
- package/dist/arena.d.ts +64 -0
- package/package.json +1 -1
- package/bench/bench.md +0 -38
package/dist/arena.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export type ArenaLocation = bigint & {
|
|
2
|
+
readonly __data_pointer: unique symbol;
|
|
3
|
+
};
|
|
4
|
+
export interface ArenaOptions {
|
|
5
|
+
initalSize?: number;
|
|
6
|
+
littleEndian?: boolean;
|
|
7
|
+
allignment?: 8 | 16 | 32 | 64;
|
|
8
|
+
bucketOffsets?: number[];
|
|
9
|
+
bucketCapacities?: number[];
|
|
10
|
+
}
|
|
11
|
+
export interface ArenaCustomHeaders {
|
|
12
|
+
header0: number;
|
|
13
|
+
header1: number;
|
|
14
|
+
header2: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ArenaHeaders {
|
|
17
|
+
totalLength: number;
|
|
18
|
+
payloadlength: number;
|
|
19
|
+
deleted: boolean;
|
|
20
|
+
header0: number;
|
|
21
|
+
header1: number;
|
|
22
|
+
header2: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class Arena {
|
|
25
|
+
private HEADER_SIZE_BYTES;
|
|
26
|
+
private _buffer;
|
|
27
|
+
private _view8;
|
|
28
|
+
private _view32;
|
|
29
|
+
private _offset;
|
|
30
|
+
private _emptySpots;
|
|
31
|
+
private _allignMask;
|
|
32
|
+
private _allignShift;
|
|
33
|
+
private _bucketOffsets;
|
|
34
|
+
private _bucketCapacities;
|
|
35
|
+
private _bucketcount;
|
|
36
|
+
constructor(options?: ArenaOptions);
|
|
37
|
+
private _u;
|
|
38
|
+
private _idx32;
|
|
39
|
+
private _makePtr;
|
|
40
|
+
private _getOffset;
|
|
41
|
+
private _getBucketCount;
|
|
42
|
+
private _setBucketCount;
|
|
43
|
+
private _getBucketOffset;
|
|
44
|
+
private _setBucketOffset;
|
|
45
|
+
private _initBlock;
|
|
46
|
+
alloc(data: Uint8Array, headers?: ArenaCustomHeaders): ArenaLocation;
|
|
47
|
+
read(location: ArenaLocation): Uint8Array | null;
|
|
48
|
+
free(location: ArenaLocation): ArenaLocation;
|
|
49
|
+
private _checkForSpace;
|
|
50
|
+
private _resize;
|
|
51
|
+
size(): number;
|
|
52
|
+
getBuffer(): Uint8Array;
|
|
53
|
+
reserve(size: number): Uint8Array;
|
|
54
|
+
translate(ptr: ArenaLocation): {
|
|
55
|
+
start: number;
|
|
56
|
+
generation: bigint;
|
|
57
|
+
};
|
|
58
|
+
readWithHeaders(ptr: ArenaLocation): Uint8Array | null;
|
|
59
|
+
label(): Array<ArenaLocation>;
|
|
60
|
+
getHeaders(ptr: ArenaLocation): ArenaHeaders;
|
|
61
|
+
estimate(size: number, amnt: number): number;
|
|
62
|
+
directAlloc(source: Uint8Array, startn: number, endn: number): ArenaLocation;
|
|
63
|
+
clear(): void;
|
|
64
|
+
}
|
package/package.json
CHANGED
package/bench/bench.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Benchmark 1
|
|
2
|
-
|
|
3
|
-
## bun arena.ts;
|
|
4
|
-
183098.55 ms
|
|
5
|
-
{
|
|
6
|
-
rss: 11240919040,
|
|
7
|
-
heapTotal: 8595075072,
|
|
8
|
-
heapUsed: 4817152633,
|
|
9
|
-
external: 2157456969,
|
|
10
|
-
arrayBuffers: 2156686216,
|
|
11
|
-
}
|
|
12
|
-
arenasize: 2097152 KB
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## bun array.ts
|
|
17
|
-
765961.27 ms
|
|
18
|
-
Count: 50000000
|
|
19
|
-
{
|
|
20
|
-
rss: 28036014080,
|
|
21
|
-
heapTotal: 9476152320,
|
|
22
|
-
heapUsed: 11222438346,
|
|
23
|
-
external: 7170077276,
|
|
24
|
-
arrayBuffers: 2921230601,
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## Direct Comparison
|
|
30
|
-
|
|
31
|
-
| Metric | Arena Implementation (Optimized) | Standard Array Implementation | Difference / Factor |
|
|
32
|
-
| :--- | :--- | :--- | :--- |
|
|
33
|
-
| **Total Time** | **183,098 ms** (3.05 min) | **765,961 ms** (12.76 min) | **~4.2x Faster** |
|
|
34
|
-
| **Time per 50M Lines** | **~18.3 sec** | **~76.6 sec** | **- 58.3 sec / Round** |
|
|
35
|
-
| **RAM Usage (RSS)** | **11.24 GB** | **28.04 GB** | **16.8 GB Saved** |
|
|
36
|
-
| **Heap Used (JS Objects)** | **4.82 GB** | **11.22 GB** | **2.3x More Efficient** |
|
|
37
|
-
| **External (Buffer)** | **2.16 GB** | **7.17 GB** | **Compact Memory Footprint** |
|
|
38
|
-
|