Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

realnet_results_isolated.txt 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. Real TCP benchmark results — isolated processes (one process per strategy per concurrency level)
  2. Server: Amsterdam VPS, 1 vCPU, 961 MB RAM, Linux 6.8.0-106-generic, GOMAXPROCS=1
  3. Date: 2026-03-28
  4. Binary: benchmarks/cmd/realnet/main.go
  5. === SUMMARY ===
  6. | Scenario | Strategy | Duration | Throughput | Peak mem | GC cycles | GC pause total |
  7. |------------------|----------|----------|------------|----------|-----------|----------------|
  8. | 500 conn × 2MB | stack | 28.5s | 70.1 MB/s | 23.1 MB | 5 | 342µs |
  9. | 500 conn × 2MB | pool | 31.6s | 63.2 MB/s | 31.8 MB | 4 | 341µs |
  10. | 1000 conn × 1MB | stack | 31.6s | 63.2 MB/s | 40.0 MB | 6 | 352µs |
  11. | 1000 conn × 1MB | pool | 28.9s | 69.2 MB/s | 62.9 MB | 5 | 576µs |
  12. | 2000 conn × 1MB | stack | 2m17s | 24.0 MB/s | 61.4 MB | 7 | 748µs |
  13. | 2000 conn × 1MB | pool | 1m6s | 60.4 MB/s | 125.5 MB | 6 | 570µs |
  14. Notes:
  15. - 2000 conn stack: connection timeouts, only 3.2 GB of 4.0 GB transferred
  16. - 2000 conn pool: clean run, 3.9 GB of 4.0 GB transferred (minor timeouts)
  17. - Peak memory = StackInuse + HeapInuse, sampled every 10ms
  18. - Each strategy runs in a fresh process (no baseline contamination)
  19. === RAW OUTPUT ===
  20. --- 500 conns: STACK ONLY ---
  21. === stack strategy, 500 connections, 2.0 MB per conn ===
  22. [2.0s] 140.9 MB transferred, 70.4 MB/s
  23. [4.0s] 300.7 MB transferred, 75.2 MB/s
  24. [6.0s] 447.0 MB transferred, 74.5 MB/s
  25. [8.0s] 583.9 MB transferred, 73.0 MB/s
  26. [10.0s] 722.0 MB transferred, 72.2 MB/s
  27. [12.0s] 868.4 MB transferred, 72.4 MB/s
  28. [14.0s] 1010.1 MB transferred, 72.2 MB/s
  29. [16.0s] 1.1 GB transferred, 71.6 MB/s
  30. [18.0s] 1.3 GB transferred, 71.5 MB/s
  31. [20.0s] 1.4 GB transferred, 71.1 MB/s
  32. [22.0s] 1.5 GB transferred, 70.9 MB/s
  33. [24.0s] 1.7 GB transferred, 70.6 MB/s
  34. [26.0s] 1.8 GB transferred, 70.1 MB/s
  35. [28.0s] 1.9 GB transferred, 70.0 MB/s
  36. Results:
  37. Duration: 28.546s
  38. Total data: 2.0 GB
  39. Throughput: 70.1 MB/s
  40. Peak memory: 23.1 MB (baseline 440.0 KB, delta 22.7 MB)
  41. Stack (before): 224.0 KB → (after): 1.5 MB
  42. Heap (before): 216.0 KB → (after): 1.6 MB
  43. Goroutines: 3 → 3
  44. GC cycles: 5
  45. GC total pause: 341.566µs
  46. GC avg pause: 68.313µs
  47. --- 500 conns: POOL ONLY ---
  48. === pool strategy, 500 connections, 2.0 MB per conn ===
  49. [2.0s] 109.5 MB transferred, 54.8 MB/s
  50. [4.0s] 233.1 MB transferred, 58.3 MB/s
  51. [6.0s] 355.3 MB transferred, 59.2 MB/s
  52. [8.0s] 475.9 MB transferred, 59.5 MB/s
  53. [10.0s] 592.7 MB transferred, 59.3 MB/s
  54. [12.0s] 707.9 MB transferred, 59.0 MB/s
  55. [14.0s] 840.1 MB transferred, 60.0 MB/s
  56. [16.0s] 977.7 MB transferred, 61.1 MB/s
  57. [18.0s] 1.1 GB transferred, 62.4 MB/s
  58. [20.0s] 1.2 GB transferred, 62.8 MB/s
  59. [22.0s] 1.4 GB transferred, 62.8 MB/s
  60. [24.0s] 1.5 GB transferred, 63.1 MB/s
  61. [26.0s] 1.6 GB transferred, 62.8 MB/s
  62. [28.0s] 1.7 GB transferred, 63.0 MB/s
  63. [30.0s] 1.9 GB transferred, 63.4 MB/s
  64. Results:
  65. Duration: 31.631s
  66. Total data: 2.0 GB
  67. Throughput: 63.2 MB/s
  68. Peak memory: 31.8 MB (baseline 440.0 KB, delta 31.4 MB)
  69. Stack (before): 224.0 KB → (after): 1.5 MB
  70. Heap (before): 216.0 KB → (after): 17.3 MB
  71. Goroutines: 3 → 3
  72. GC cycles: 4
  73. GC total pause: 341.071µs
  74. GC avg pause: 85.267µs
  75. --- 1000 conns: STACK ONLY ---
  76. === stack strategy, 1000 connections, 1.0 MB per conn ===
  77. [2.0s] 109.6 MB transferred, 54.8 MB/s
  78. [4.0s] 252.7 MB transferred, 63.2 MB/s
  79. [6.0s] 401.2 MB transferred, 66.9 MB/s
  80. [8.0s] 524.8 MB transferred, 65.6 MB/s
  81. [10.0s] 638.9 MB transferred, 63.9 MB/s
  82. [12.0s] 763.2 MB transferred, 63.6 MB/s
  83. [14.0s] 900.3 MB transferred, 64.3 MB/s
  84. [16.0s] 1.0 GB transferred, 65.2 MB/s
  85. [18.0s] 1.1 GB transferred, 65.2 MB/s
  86. [20.0s] 1.3 GB transferred, 64.3 MB/s
  87. [22.0s] 1.4 GB transferred, 63.7 MB/s
  88. [24.0s] 1.5 GB transferred, 63.4 MB/s
  89. [26.0s] 1.6 GB transferred, 63.1 MB/s
  90. [28.0s] 1.7 GB transferred, 63.1 MB/s
  91. [30.0s] 1.9 GB transferred, 63.3 MB/s
  92. Results:
  93. Duration: 31.629s
  94. Total data: 2.0 GB
  95. Throughput: 63.2 MB/s
  96. Peak memory: 40.0 MB (baseline 440.0 KB, delta 39.6 MB)
  97. Stack (before): 224.0 KB → (after): 1.2 MB
  98. Heap (before): 216.0 KB → (after): 2.8 MB
  99. Goroutines: 3 → 3
  100. GC cycles: 6
  101. GC total pause: 352.22µs
  102. GC avg pause: 58.703µs
  103. --- 1000 conns: POOL ONLY ---
  104. === pool strategy, 1000 connections, 1.0 MB per conn ===
  105. [2.0s] 113.3 MB transferred, 56.6 MB/s
  106. [4.0s] 253.0 MB transferred, 63.3 MB/s
  107. [6.0s] 398.7 MB transferred, 66.4 MB/s
  108. [8.0s] 548.1 MB transferred, 68.5 MB/s
  109. [10.0s] 693.0 MB transferred, 69.3 MB/s
  110. [12.0s] 833.5 MB transferred, 69.5 MB/s
  111. [14.0s] 980.1 MB transferred, 70.0 MB/s
  112. [16.0s] 1.1 GB transferred, 70.4 MB/s
  113. [18.0s] 1.2 GB transferred, 70.2 MB/s
  114. [20.0s] 1.4 GB transferred, 70.2 MB/s
  115. [22.0s] 1.5 GB transferred, 70.2 MB/s
  116. [24.0s] 1.6 GB transferred, 69.9 MB/s
  117. [26.0s] 1.8 GB transferred, 69.7 MB/s
  118. [28.0s] 1.9 GB transferred, 69.5 MB/s
  119. Results:
  120. Duration: 28.899s
  121. Total data: 2.0 GB
  122. Throughput: 69.2 MB/s
  123. Peak memory: 62.9 MB (baseline 440.0 KB, delta 62.5 MB)
  124. Stack (before): 224.0 KB → (after): 320.0 KB
  125. Heap (before): 216.0 KB → (after): 34.2 MB
  126. Goroutines: 3 → 3
  127. GC cycles: 5
  128. GC total pause: 575.835µs
  129. GC avg pause: 115.167µs
  130. --- 2000 conns: STACK ONLY ---
  131. === stack strategy, 2000 connections, 1.0 MB per conn ===
  132. [2.0s] 90.0 MB transferred, 45.0 MB/s
  133. [4.0s] 96.0 MB transferred, 24.0 MB/s
  134. [6.0s] 102.0 MB transferred, 17.0 MB/s
  135. [8.0s] 106.0 MB transferred, 13.2 MB/s
  136. [10.0s] 108.0 MB transferred, 10.8 MB/s
  137. [12.0s] 169.1 MB transferred, 14.1 MB/s
  138. [14.0s] 246.0 MB transferred, 17.6 MB/s
  139. [16.0s] 246.0 MB transferred, 15.4 MB/s
  140. [18.0s] 246.0 MB transferred, 13.7 MB/s
  141. [20.0s] 266.0 MB transferred, 13.3 MB/s
  142. [22.0s] 274.0 MB transferred, 12.5 MB/s
  143. [24.0s] 274.0 MB transferred, 11.4 MB/s
  144. [26.0s] 274.0 MB transferred, 10.5 MB/s
  145. [28.0s] 276.0 MB transferred, 9.9 MB/s
  146. [30.0s] 276.0 MB transferred, 9.2 MB/s
  147. [32.0s] 302.0 MB transferred, 9.4 MB/s
  148. [34.0s] 302.0 MB transferred, 8.9 MB/s
  149. [36.0s] 302.0 MB transferred, 8.4 MB/s
  150. [38.0s] 437.0 MB transferred, 11.5 MB/s
  151. [40.0s] 578.4 MB transferred, 14.5 MB/s
  152. [42.0s] 719.2 MB transferred, 17.1 MB/s
  153. [44.0s] 859.6 MB transferred, 19.5 MB/s
  154. [46.0s] 996.6 MB transferred, 21.7 MB/s
  155. [48.0s] 1.1 GB transferred, 23.7 MB/s
  156. [50.0s] 1.2 GB transferred, 25.5 MB/s
  157. [52.0s] 1.4 GB transferred, 27.2 MB/s
  158. [54.0s] 1.5 GB transferred, 28.8 MB/s
  159. [56.0s] 1.6 GB transferred, 30.2 MB/s
  160. [58.0s] 1.8 GB transferred, 31.6 MB/s
  161. [60.0s] 1.9 GB transferred, 31.8 MB/s
  162. [62.0s] 1.9 GB transferred, 30.8 MB/s
  163. [64.0s] 1.9 GB transferred, 29.8 MB/s
  164. [66.0s] 1.9 GB transferred, 29.6 MB/s
  165. [68.0s] 1.9 GB transferred, 28.7 MB/s
  166. [70.0s] 2.0 GB transferred, 29.6 MB/s
  167. [72.0s] 2.2 GB transferred, 30.8 MB/s
  168. [74.0s] 2.3 GB transferred, 31.9 MB/s
  169. [76.0s] 2.4 GB transferred, 32.9 MB/s
  170. [78.0s] 2.6 GB transferred, 33.9 MB/s
  171. [80.0s] 2.7 GB transferred, 34.8 MB/s
  172. [82.0s] 2.8 GB transferred, 35.6 MB/s
  173. [84.0s] 3.0 GB transferred, 36.5 MB/s
  174. [86.0s] 3.1 GB transferred, 37.3 MB/s
  175. [88.0s] 3.2 GB transferred, 36.8 MB/s
  176. [90.0s] 3.2 GB transferred, 36.0 MB/s
  177. [92.0s] 3.2 GB transferred, 35.2 MB/s
  178. [94.0s] 3.2 GB transferred, 34.6 MB/s
  179. [96.0s] 3.2 GB transferred, 33.9 MB/s
  180. [98.0s] 3.2 GB transferred, 33.2 MB/s
  181. [100.0s] 3.2 GB transferred, 32.5 MB/s
  182. [102.0s] 3.2 GB transferred, 31.9 MB/s
  183. [104.0s] 3.2 GB transferred, 31.3 MB/s
  184. [106.0s] 3.2 GB transferred, 31.1 MB/s
  185. [108.0s] 3.2 GB transferred, 30.6 MB/s
  186. [110.0s] 3.2 GB transferred, 30.0 MB/s
  187. [112.0s] 3.2 GB transferred, 29.5 MB/s
  188. [114.0s] 3.2 GB transferred, 28.9 MB/s
  189. [116.0s] 3.2 GB transferred, 28.4 MB/s
  190. [118.0s] 3.2 GB transferred, 28.0 MB/s
  191. [120.0s] 3.2 GB transferred, 27.5 MB/s
  192. [122.0s] 3.2 GB transferred, 27.0 MB/s
  193. [124.0s] 3.2 GB transferred, 26.6 MB/s
  194. [126.0s] 3.2 GB transferred, 26.2 MB/s
  195. [128.0s] 3.2 GB transferred, 25.8 MB/s
  196. [130.0s] 3.2 GB transferred, 25.4 MB/s
  197. [132.0s] 3.2 GB transferred, 25.0 MB/s
  198. client dial: dial tcp 127.0.0.1:36981: connect: connection timed out (x9)
  199. Results:
  200. Duration: 2m17.37s
  201. Total data: 3.2 GB
  202. Throughput: 24.0 MB/s
  203. Peak memory: 61.4 MB (baseline 440.0 KB, delta 61.0 MB)
  204. Stack (before): 224.0 KB → (after): 1.7 MB
  205. Heap (before): 216.0 KB → (after): 3.4 MB
  206. Goroutines: 3 → 3
  207. GC cycles: 7
  208. GC total pause: 747.714µs
  209. GC avg pause: 106.816µs
  210. --- 2000 conns: POOL ONLY ---
  211. === pool strategy, 2000 connections, 1.0 MB per conn ===
  212. [2.0s] 44.2 MB transferred, 22.1 MB/s
  213. [4.0s] 165.1 MB transferred, 41.3 MB/s
  214. [6.0s] 294.2 MB transferred, 49.0 MB/s
  215. [8.0s] 420.4 MB transferred, 52.5 MB/s
  216. [10.0s] 542.3 MB transferred, 54.2 MB/s
  217. [12.0s] 665.4 MB transferred, 55.5 MB/s
  218. [14.0s] 794.3 MB transferred, 56.7 MB/s
  219. [16.0s] 924.0 MB transferred, 57.7 MB/s
  220. [18.0s] 1.0 GB transferred, 58.2 MB/s
  221. [20.0s] 1.1 GB transferred, 58.1 MB/s
  222. [22.0s] 1.2 GB transferred, 58.1 MB/s
  223. [24.0s] 1.4 GB transferred, 58.3 MB/s
  224. [26.0s] 1.5 GB transferred, 58.5 MB/s
  225. [28.0s] 1.6 GB transferred, 58.9 MB/s
  226. [30.0s] 1.7 GB transferred, 59.0 MB/s
  227. [32.0s] 1.8 GB transferred, 59.1 MB/s
  228. [34.0s] 2.0 GB transferred, 59.4 MB/s
  229. [36.0s] 2.1 GB transferred, 59.5 MB/s
  230. [38.0s] 2.2 GB transferred, 59.5 MB/s
  231. [40.0s] 2.3 GB transferred, 59.6 MB/s
  232. [42.0s] 2.4 GB transferred, 59.6 MB/s
  233. [44.0s] 2.6 GB transferred, 59.9 MB/s
  234. [46.0s] 2.7 GB transferred, 60.1 MB/s
  235. [48.0s] 2.8 GB transferred, 60.4 MB/s
  236. [50.0s] 3.0 GB transferred, 60.5 MB/s
  237. [52.0s] 3.1 GB transferred, 60.6 MB/s
  238. [54.0s] 3.2 GB transferred, 60.7 MB/s
  239. [56.0s] 3.3 GB transferred, 60.9 MB/s
  240. [58.0s] 3.4 GB transferred, 60.5 MB/s
  241. [60.0s] 3.5 GB transferred, 60.4 MB/s
  242. [62.0s] 3.7 GB transferred, 60.4 MB/s
  243. [64.0s] 3.8 GB transferred, 60.5 MB/s
  244. [66.0s] 3.9 GB transferred, 60.5 MB/s
  245. Results:
  246. Duration: 1m6.189s
  247. Total data: 3.9 GB
  248. Throughput: 60.4 MB/s
  249. Peak memory: 125.5 MB (baseline 440.0 KB, delta 125.0 MB)
  250. Stack (before): 224.0 KB → (after): 1.3 MB
  251. Heap (before): 216.0 KB → (after): 68.0 MB
  252. Goroutines: 3 → 3
  253. GC cycles: 6
  254. GC total pause: 570.3µs
  255. GC avg pause: 95.05µs