Commit 67788d5
authored
Avoid copies of large payloads (#1529)
Motivation:
Messages are prefixed with a 5-byte header. Currently messages of all
sizes are written into a new buffer with their header. For smaller
payloads this is good: we avoid the extra allocations associated with
creating HTTP/2 frames. For large payloads the cost of the copy
outweighs the cost of extra allocations.
Modifications:
- For messages larger than 8KB emit an extra HTTP/2 DATA frame
containing just the message header.
Result:
Better performance for large payloads.1 parent e49a331 commit 67788d5
File tree
10 files changed
+250
-256
lines changed- .github/workflows
- Sources/GRPC
- Tests/GRPCTests
10 files changed
+250
-256
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
502 | 502 | | |
503 | 503 | | |
504 | 504 | | |
505 | | - | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
506 | 509 | | |
507 | 510 | | |
508 | 511 | | |
| |||
526 | 529 | | |
527 | 530 | | |
528 | 531 | | |
529 | | - | |
530 | | - | |
| 532 | + | |
531 | 533 | | |
532 | 534 | | |
533 | | - | |
534 | | - | |
535 | | - | |
| 535 | + | |
| 536 | + | |
536 | 537 | | |
537 | 538 | | |
538 | 539 | | |
539 | 540 | | |
540 | 541 | | |
541 | | - | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
542 | 555 | | |
543 | 556 | | |
544 | 557 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
| 168 | + | |
| 169 | + | |
169 | 170 | | |
170 | 171 | | |
171 | | - | |
| 172 | + | |
172 | 173 | | |
173 | 174 | | |
174 | 175 | | |
| |||
195 | 196 | | |
196 | 197 | | |
197 | 198 | | |
198 | | - | |
199 | | - | |
200 | | - | |
| 199 | + | |
| 200 | + | |
201 | 201 | | |
202 | | - | |
| 202 | + | |
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | | - | |
| 354 | + | |
| 355 | + | |
355 | 356 | | |
356 | 357 | | |
357 | 358 | | |
| |||
369 | 370 | | |
370 | 371 | | |
371 | 372 | | |
372 | | - | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
373 | 377 | | |
374 | 378 | | |
375 | 379 | | |
| |||
390 | 394 | | |
391 | 395 | | |
392 | 396 | | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
397 | 400 | | |
398 | 401 | | |
399 | 402 | | |
400 | | - | |
| 403 | + | |
401 | 404 | | |
402 | 405 | | |
403 | 406 | | |
404 | | - | |
| 407 | + | |
405 | 408 | | |
406 | 409 | | |
407 | 410 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
295 | 295 | | |
296 | 296 | | |
297 | 297 | | |
298 | | - | |
299 | | - | |
300 | | - | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
301 | 308 | | |
302 | 309 | | |
303 | 310 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
307 | 311 | | |
308 | 312 | | |
309 | 313 | | |
| |||
516 | 520 | | |
517 | 521 | | |
518 | 522 | | |
519 | | - | |
| 523 | + | |
| 524 | + | |
520 | 525 | | |
521 | 526 | | |
522 | 527 | | |
| |||
534 | 539 | | |
535 | 540 | | |
536 | 541 | | |
537 | | - | |
| 542 | + | |
538 | 543 | | |
539 | 544 | | |
540 | 545 | | |
541 | 546 | | |
542 | | - | |
| 547 | + | |
543 | 548 | | |
544 | 549 | | |
545 | 550 | | |
| |||
642 | 647 | | |
643 | 648 | | |
644 | 649 | | |
645 | | - | |
646 | | - | |
647 | | - | |
| 650 | + | |
| 651 | + | |
648 | 652 | | |
649 | | - | |
650 | | - | |
| 653 | + | |
| 654 | + | |
651 | 655 | | |
652 | 656 | | |
653 | 657 | | |
654 | 658 | | |
655 | 659 | | |
656 | 660 | | |
657 | 661 | | |
658 | | - | |
| 662 | + | |
659 | 663 | | |
660 | | - | |
661 | 664 | | |
662 | | - | |
| 665 | + | |
663 | 666 | | |
664 | 667 | | |
665 | 668 | | |
666 | | - | |
667 | | - | |
| 669 | + | |
668 | 670 | | |
669 | 671 | | |
670 | 672 | | |
671 | 673 | | |
672 | 674 | | |
673 | | - | |
| 675 | + | |
674 | 676 | | |
675 | | - | |
676 | 677 | | |
677 | | - | |
| 678 | + | |
678 | 679 | | |
679 | 680 | | |
680 | 681 | | |
681 | | - | |
682 | | - | |
| 682 | + | |
683 | 683 | | |
684 | 684 | | |
685 | 685 | | |
| |||
903 | 903 | | |
904 | 904 | | |
905 | 905 | | |
906 | | - | |
| 906 | + | |
907 | 907 | | |
908 | 908 | | |
909 | 909 | | |
910 | | - | |
911 | | - | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
912 | 914 | | |
913 | 915 | | |
914 | 916 | | |
| |||
1115 | 1117 | | |
1116 | 1118 | | |
1117 | 1119 | | |
1118 | | - | |
| 1120 | + | |
1119 | 1121 | | |
1120 | 1122 | | |
1121 | 1123 | | |
1122 | | - | |
| 1124 | + | |
1123 | 1125 | | |
1124 | 1126 | | |
1125 | 1127 | | |
| |||
1129 | 1131 | | |
1130 | 1132 | | |
1131 | 1133 | | |
1132 | | - | |
1133 | | - | |
| 1134 | + | |
| 1135 | + | |
1134 | 1136 | | |
1135 | | - | |
1136 | 1137 | | |
1137 | 1138 | | |
| 1139 | + | |
| 1140 | + | |
1138 | 1141 | | |
1139 | | - | |
1140 | | - | |
| 1142 | + | |
| 1143 | + | |
1141 | 1144 | | |
1142 | | - | |
1143 | 1145 | | |
1144 | 1146 | | |
| 1147 | + | |
| 1148 | + | |
1145 | 1149 | | |
1146 | 1150 | | |
1147 | 1151 | | |
| |||
0 commit comments