Commit 4f19146
committed
perf(@angular/build): bound concurrent worker allocation for dominant files in i18n inliner
Dominant files (such as main.js or other large bundles >= 70% of max file size)
previously sharded their locales across all available workers in the pool.
On high-core machines, this dispatched heavy AST parsing and sourcemap remapping
simultaneously across all worker threads, monopolizing the pool, causing memory
bus/cache contention, and spiking peak V8 heap and RSS.
A MAX_DOMINANT_WORKERS constant of 4 now caps the number of worker threads
concurrently processing a single dominant file. Additionally, when multiple files
exist in the window, workers are dynamically allocated to guarantee that at
least one worker thread is always available to process smaller chunks concurrently
without starvation. A new multi-dominant scenario has also been added to the
benchmark suite to measure throughput and memory under multi-bundle workloads.1 parent b097be0 commit 4f19146
2 files changed
Lines changed: 101 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
73 | 80 | | |
74 | 81 | | |
75 | 82 | | |
| |||
522 | 529 | | |
523 | 530 | | |
524 | 531 | | |
525 | | - | |
526 | | - | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
527 | 535 | | |
528 | 536 | | |
529 | 537 | | |
530 | 538 | | |
531 | | - | |
532 | | - | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
533 | 543 | | |
534 | 544 | | |
535 | 545 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
314 | 400 | | |
315 | 401 | | |
316 | 402 | | |
| |||
462 | 548 | | |
463 | 549 | | |
464 | 550 | | |
| 551 | + | |
465 | 552 | | |
466 | 553 | | |
467 | 554 | | |
| |||


0 commit comments