Commit 6801d37
src: add snapshot support for embedder API
Add experimental support for loading snapshots in the embedder API
by adding a public opaque wrapper for our `SnapshotData` struct and
allowing embedders to pass it to the relevant setup functions.
Where applicable, use these helpers to deduplicate existing code
in Node.js’s startup path.
This has shown a 40 % startup performance increase for a real-world
application, even with the somewhat limited current support for
built-in modules.
The documentation includes a note about no guarantees for API or
ABI stability for this feature while it is experimental.
PR-URL: #45888
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>1 parent 95065c3 commit 6801d37Copy full SHA for 6801d37
File tree
Expand file treeCollapse file tree
15 files changed
+433
-110
lines changedOpen diff view settings
Filter options
- src
- api
- test
- embedding
- fixtures/snapshot
Expand file treeCollapse file tree
15 files changed
+433
-110
lines changedOpen diff view settings
Collapse file
+60-5Lines changed: 60 additions & 5 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
1 | | - |
2 | | - |
3 | 1 | |
| 2 | + |
| 3 | + |
| 4 | + |
4 | 5 | |
5 | 6 | |
6 | 7 | |
| ||
86 | 87 | |
87 | 88 | |
88 | 89 | |
| 90 | + |
89 | 91 | |
90 | | - |
| 92 | + |
91 | 93 | |
92 | 94 | |
93 | 95 | |
| ||
104 | 106 | |
105 | 107 | |
106 | 108 | |
107 | | - |
| 109 | + |
| 110 | + |
108 | 111 | |
109 | 112 | |
110 | 113 | |
111 | 114 | |
112 | 115 | |
113 | 116 | |
114 | | - |
| 117 | + |
115 | 118 | |
116 | 119 | |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + |
117 | 128 | |
118 | 129 | |
119 | 130 | |
| ||
126 | 137 | |
127 | 138 | |
128 | 139 | |
| 140 | + |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | + |
| 145 | + |
129 | 146 | |
130 | 147 | |
131 | 148 | |
| ||
189 | 206 | |
190 | 207 | |
191 | 208 | |
| 209 | + |
| 210 | + |
| 211 | + |
| 212 | + |
| 213 | + |
| 214 | + |
| 215 | + |
| 216 | + |
| 217 | + |
| 218 | + |
| 219 | + |
| 220 | + |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | + |
| 225 | + |
| 226 | + |
| 227 | + |
| 228 | + |
| 229 | + |
| 230 | + |
| 231 | + |
| 232 | + |
| 233 | + |
| 234 | + |
| 235 | + |
| 236 | + |
| 237 | + |
| 238 | + |
| 239 | + |
| 240 | + |
| 241 | + |
| 242 | + |
| 243 | + |
| 244 | + |
| 245 | + |
| 246 | + |
192 | 247 | |
Collapse file
+92-14Lines changed: 92 additions & 14 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
9 | 9 | |
10 | 10 | |
11 | 11 | |
| 12 | + |
12 | 13 | |
13 | 14 | |
14 | 15 | |
| ||
315 | 316 | |
316 | 317 | |
317 | 318 | |
318 | | - |
| 319 | + |
| 320 | + |
319 | 321 | |
320 | 322 | |
| 323 | + |
| 324 | + |
| 325 | + |
| 326 | + |
| 327 | + |
321 | 328 | |
322 | 329 | |
323 | 330 | |
| ||
336 | 343 | |
337 | 344 | |
338 | 345 | |
339 | | - |
| 346 | + |
340 | 347 | |
341 | 348 | |
342 | | - |
| 349 | + |
343 | 350 | |
344 | | - |
| 351 | + |
345 | 352 | |
346 | 353 | |
347 | 354 | |
348 | 355 | |
349 | 356 | |
350 | 357 | |
351 | 358 | |
352 | | - |
| 359 | + |
| 360 | + |
| 361 | + |
353 | 362 | |
354 | 363 | |
355 | | - |
| 364 | + |
| 365 | + |
| 366 | + |
| 367 | + |
| 368 | + |
356 | 369 | |
357 | 370 | |
358 | 371 | |
359 | 372 | |
360 | | - |
| 373 | + |
| 374 | + |
| 375 | + |
361 | 376 | |
362 | 377 | |
363 | | - |
| 378 | + |
| 379 | + |
| 380 | + |
| 381 | + |
| 382 | + |
| 383 | + |
| 384 | + |
| 385 | + |
| 386 | + |
| 387 | + |
| 388 | + |
| 389 | + |
| 390 | + |
| 391 | + |
| 392 | + |
| 393 | + |
| 394 | + |
| 395 | + |
| 396 | + |
| 397 | + |
| 398 | + |
| 399 | + |
| 400 | + |
| 401 | + |
| 402 | + |
| 403 | + |
| 404 | + |
| 405 | + |
364 | 406 | |
365 | 407 | |
366 | 408 | |
367 | 409 | |
368 | 410 | |
369 | 411 | |
370 | | - |
| 412 | + |
371 | 413 | |
372 | 414 | |
373 | 415 | |
| ||
395 | 437 | |
396 | 438 | |
397 | 439 | |
398 | | - |
| 440 | + |
399 | 441 | |
400 | | - |
| 442 | + |
| 443 | + |
| 444 | + |
| 445 | + |
| 446 | + |
| 447 | + |
| 448 | + |
| 449 | + |
401 | 450 | |
402 | 451 | |
403 | | - |
404 | | - |
| 452 | + |
| 453 | + |
| 454 | + |
| 455 | + |
| 456 | + |
| 457 | + |
| 458 | + |
| 459 | + |
| 460 | + |
| 461 | + |
| 462 | + |
| 463 | + |
| 464 | + |
| 465 | + |
| 466 | + |
| 467 | + |
| 468 | + |
| 469 | + |
| 470 | + |
| 471 | + |
| 472 | + |
| 473 | + |
| 474 | + |
| 475 | + |
| 476 | + |
| 477 | + |
| 478 | + |
405 | 479 | |
406 | 480 | |
407 | 481 | |
| ||
415 | 489 | |
416 | 490 | |
417 | 491 | |
418 | | - |
| 492 | + |
419 | 493 | |
420 | 494 | |
421 | 495 | |
| ||
500 | 574 | |
501 | 575 | |
502 | 576 | |
| 577 | + |
| 578 | + |
| 579 | + |
| 580 | + |
503 | 581 | |
504 | 582 | |
505 | 583 | |
|
Collapse file
+4Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
69 | 69 | |
70 | 70 | |
71 | 71 | |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
72 | 76 | |
73 | 77 | |
74 | 78 | |
|
Collapse file
+17-24Lines changed: 17 additions & 24 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
472 | 472 | |
473 | 473 | |
474 | 474 | |
475 | | - |
| 475 | + |
476 | 476 | |
477 | 477 | |
478 | 478 | |
479 | 479 | |
480 | | - |
| 480 | + |
| 481 | + |
481 | 482 | |
482 | 483 | |
483 | 484 | |
484 | | - |
| 485 | + |
485 | 486 | |
486 | 487 | |
487 | | - |
| 488 | + |
488 | 489 | |
489 | 490 | |
490 | 491 | |
| ||
674 | 675 | |
675 | 676 | |
676 | 677 | |
| 678 | + |
677 | 679 | |
678 | | - |
| 680 | + |
| 681 | + |
| 682 | + |
| 683 | + |
| 684 | + |
| 685 | + |
| 686 | + |
679 | 687 | |
680 | | - |
681 | 688 | |
682 | 689 | |
| 690 | + |
| 691 | + |
| 692 | + |
| 693 | + |
683 | 694 | |
684 | | - |
685 | 695 | |
686 | 696 | |
687 | 697 | |
| ||
746 | 756 | |
747 | 757 | |
748 | 758 | |
749 | | - |
750 | | - |
751 | | - |
752 | | - |
753 | | - |
754 | | - |
755 | | - |
756 | | - |
757 | | - |
758 | | - |
759 | | - |
760 | | - |
761 | | - |
762 | | - |
763 | | - |
764 | | - |
765 | | - |
766 | 759 | |
767 | 760 | |
768 | 761 | |
|
0 commit comments