Commit 53af6fa
authored
perf(jetsocat,dgw): HashSet to track channels waiting for adjustment (#980)
In JMUX proxy, a HashSet is used to track channels waiting for
window adjustement instead of iterating through the whole list.
Throughput and CPU-usage is slightly improved.
1. Benchmark results before this patch
a. With 50ms delay on loopback
1 connection:
[ 1] 0.0000-600.4660 sec 16.0 GBytes 229 Mbits/sec
2 connections:
[ 2] 0.0000-605.0918 sec 8.18 GBytes 116 Mbits/sec
[ 1] 0.0000-605.1930 sec 8.18 GBytes 116 Mbits/sec
[SUM] 0.0000-605.1930 sec 16.4 GBytes 232 Mbits/sec
10 connections:
[ 9] 0.0000-626.1216 sec 1.69 GBytes 23.1 Mbits/sec
[ 10] 0.0000-626.2644 sec 1.69 GBytes 23.1 Mbits/sec
[ 1] 0.0000-626.2643 sec 1.69 GBytes 23.1 Mbits/sec
[ 3] 0.0000-626.2633 sec 1.69 GBytes 23.1 Mbits/sec
[ 8] 0.0000-626.2619 sec 1.69 GBytes 23.2 Mbits/sec
[ 6] 0.0000-626.3628 sec 1.69 GBytes 23.1 Mbits/sec
[ 7] 0.0000-626.3644 sec 1.69 GBytes 23.1 Mbits/sec
[ 5] 0.0000-626.3640 sec 1.69 GBytes 23.2 Mbits/sec
[ 4] 0.0000-626.3627 sec 1.69 GBytes 23.2 Mbits/sec
[ 2] 0.0000-626.4901 sec 1.69 GBytes 23.1 Mbits/sec
[SUM] 0.0000-626.4902 sec 16.9 GBytes 231 Mbits/sec
b. Without delay
1 connection:
[ 1] 0.0000-600.0847 sec 1.28 TBytes 18.8 Gbits/sec
2 connections:
[ 1] 0.0000-600.0795 sec 656 GBytes 9.39 Gbits/sec
[ 2] 0.0000-600.0958 sec 656 GBytes 9.38 Gbits/sec
[SUM] 0.0000-600.0958 sec 1.28 TBytes 18.8 Gbits/sec
10 connections:
[ 8] 0.0000-600.3803 sec 108 GBytes 1.54 Gbits/sec
[ 4] 0.0000-600.3804 sec 108 GBytes 1.54 Gbits/sec
[ 2] 0.0000-600.3789 sec 108 GBytes 1.54 Gbits/sec
[ 6] 0.0000-600.3795 sec 108 GBytes 1.54 Gbits/sec
[ 3] 0.0000-600.3793 sec 108 GBytes 1.54 Gbits/sec
[ 9] 0.0000-600.3789 sec 108 GBytes 1.54 Gbits/sec
[ 10] 0.0000-600.3802 sec 108 GBytes 1.54 Gbits/sec
[ 5] 0.0000-600.3791 sec 108 GBytes 1.54 Gbits/sec
[ 1] 0.0000-600.3794 sec 108 GBytes 1.54 Gbits/sec
[ 7] 0.0000-600.3803 sec 108 GBytes 1.54 Gbits/sec
[SUM] 0.0000-600.3803 sec 1.05 TBytes 15.4 Gbits/sec
2. Benchmark results after this patch
a. With 50ms delay on loopback
1 connection:
[ 1] 0.0000-600.4197 sec 16.1 GBytes 230 Mbits/sec
2 connections:
[ 1] 0.0000-605.0387 sec 8.19 GBytes 116 Mbits/sec
[ 2] 0.0000-605.1395 sec 8.19 GBytes 116 Mbits/sec
[SUM] 0.0000-605.1395 sec 16.4 GBytes 233 Mbits/sec
10 connections:
[ 3] 0.0000-625.7966 sec 1.69 GBytes 23.2 Mbits/sec
[ 8] 0.0000-625.9956 sec 1.69 GBytes 23.2 Mbits/sec
[ 1] 0.0000-626.0966 sec 1.69 GBytes 23.2 Mbits/sec
[ 5] 0.0000-626.0964 sec 1.69 GBytes 23.2 Mbits/sec
[ 2] 0.0000-626.1983 sec 1.69 GBytes 23.2 Mbits/sec
[ 7] 0.0000-626.1964 sec 1.69 GBytes 23.2 Mbits/sec
[ 6] 0.0000-626.1964 sec 1.69 GBytes 23.2 Mbits/sec
[ 9] 0.0000-626.1981 sec 1.69 GBytes 23.2 Mbits/sec
[ 10] 0.0000-626.2973 sec 1.69 GBytes 23.2 Mbits/sec
[ 4] 0.0000-626.3984 sec 1.69 GBytes 23.2 Mbits/sec
[SUM] 0.0000-626.3986 sec 16.9 GBytes 232 Mbits/sec
b. Without delay
1 connection:
[ 1] 0.0000-600.0518 sec 1.33 TBytes 19.4 Gbits/sec
2 connections:
[ 2] 0.0000-600.0706 sec 681 GBytes 9.75 Gbits/sec
[ 1] 0.0000-600.0705 sec 681 GBytes 9.75 Gbits/sec
[SUM] 0.0000-600.0705 sec 1.33 TBytes 19.5 Gbits/sec
10 connections:
[ 3] 0.0000-600.3608 sec 112 GBytes 1.60 Gbits/sec
[ 5] 0.0000-600.3606 sec 112 GBytes 1.60 Gbits/sec
[ 6] 0.0000-600.3605 sec 112 GBytes 1.60 Gbits/sec
[ 8] 0.0000-600.3598 sec 112 GBytes 1.60 Gbits/sec
[ 7] 0.0000-600.3594 sec 112 GBytes 1.60 Gbits/sec
[ 1] 0.0000-600.3606 sec 112 GBytes 1.60 Gbits/sec
[ 9] 0.0000-600.3597 sec 112 GBytes 1.60 Gbits/sec
[ 10] 0.0000-600.3606 sec 112 GBytes 1.60 Gbits/sec
[ 2] 0.0000-600.3602 sec 112 GBytes 1.60 Gbits/sec
[ 4] 0.0000-600.3719 sec 112 GBytes 1.60 Gbits/sec
[SUM] 0.0000-600.3721 sec 1.09 TBytes 16.0 Gbits/sec1 parent ac60d0e commit 53af6fa
1 file changed
+11
-24
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | 33 | | |
44 | 34 | | |
45 | 35 | | |
| |||
323 | 313 | | |
324 | 314 | | |
325 | 315 | | |
| 316 | + | |
326 | 317 | | |
327 | 318 | | |
328 | 319 | | |
329 | 320 | | |
330 | 321 | | |
331 | 322 | | |
332 | | - | |
333 | | - | |
334 | 323 | | |
335 | 324 | | |
336 | 325 | | |
| |||
368 | 357 | | |
369 | 358 | | |
370 | 359 | | |
371 | | - | |
| 360 | + | |
372 | 361 | | |
373 | 362 | | |
374 | 363 | | |
| |||
646 | 635 | | |
647 | 636 | | |
648 | 637 | | |
649 | | - | |
| 638 | + | |
650 | 639 | | |
651 | 640 | | |
652 | 641 | | |
| |||
722 | 711 | | |
723 | 712 | | |
724 | 713 | | |
725 | | - | |
726 | | - | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
727 | 720 | | |
728 | 721 | | |
729 | 722 | | |
730 | | - | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | 723 | | |
735 | 724 | | |
736 | 725 | | |
737 | 726 | | |
738 | 727 | | |
739 | 728 | | |
740 | 729 | | |
741 | | - | |
742 | | - | |
743 | 730 | | |
744 | 731 | | |
745 | 732 | | |
| |||
820 | 807 | | |
821 | 808 | | |
822 | 809 | | |
823 | | - | |
| 810 | + | |
824 | 811 | | |
825 | 812 | | |
826 | 813 | | |
| |||
0 commit comments