Closed kalicki closed 6 years ago
Thank you. Can I use rc
versions of gem?
Yes, I tested it and it looks good. I think maybe it has to have rc
in the README. e.g. https://github.com/tbrand/which_is_the_fastest/blame/master/README.md#L131
I think maybe it has to have rc in the README.
Why? Or we can wait release (I think I can make it soon).
Let's wait for feedback from @OvermindDL1 and @waghanza
Adding new frameworks are good ideas but we SHOULD priorize stabilization.
I'll let this issue open, to add flame
later
Thanks anyway for proposal
but we SHOULD priorize stabilization
Flame 5 RC is very stable and it's using in production almost a half of year. I just want to add new features and automations before release, polish the documentation.
But as you wish.
@AlexWayfer I mean this project stabilization, not flame
🤗
@AlexWayfer I mean this project stabilization, not flame hugs
Oh, okay! Sorry.
@waghanza it does not make sense your thinking ... the basic idea is to test frameworks and their performance. The project is stable and able to scale more and more frameworks.
@kalicki I mean that we have to stabilize the project, in term of results, before adding frameworks.
More, we will open a chat (gitter
) to discuss about that
I tested #191 with a couple other random servers that I already had built and got this, this does not look right, is flame really this slow?
╰─➤ tools/stats.exs -w 1 -d 3 _ Total Cores: 16 Concurrent Connections: 1000 Threads: 10 Warmup: 1 seconds Duration: 3 seconds
Processing servers:
Processing: bin/server_cpp_evhtp Processing: bin/server_crystal_router_cr Processing: bin/server_go_fasthttprouter Processing: bin/server_ruby_flame Processing: bin/server_ruby_rails Processing: bin/server_rust_iron Processing: bin/server_rust_nickel
Path | URL | Errors | Total Requests Count | Total Requests/s | Total Requests Throughput | Total Throughput/s | Req/s Avg | Req/s Stdev | Req/s Max | Req/s +/- | Latency Avg | Latency Stdev | Latency Max | Latency +/- | 50% | 75% | 90% | 99% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bin/server_cpp_evhtp | http://127.0.0.1:3000/ | 0 | 1924946 | 624847.35 | 117.49MB | 38.14MB | 64.06k | 15.96k | 108.68k | 70.67% | 2.30ms | 5.29ms | 216.69ms | 93.07% | 653.00us | 2.84ms | 6.26ms | 13.74ms |
bin/server_cpp_evhtp | http://127.0.0.1:3000/user | 0 | 1860113 | 607361.23 | 113.53MB | 37.07MB | 61.90k | 15.68k | 103.54k | 77.33% | 2.61ms | 7.62ms | 217.55ms | 96.17% | 717.00us | 2.96ms | 6.74ms | 14.91ms |
bin/server_cpp_evhtp | http://127.0.0.1:3000/user/0 | 0 | 1690966 | 550463.66 | 151.59MB | 49.35MB | 56.31k | 12.97k | 105.39k | 81.33% | 2.29ms | 5.05ms | 208.65ms | 94.03% | 840.00us | 2.92ms | 5.66ms | 12.97ms |
bin/server_crystal_router_cr | http://127.0.0.1:3000/ | 0 | 208045 | 68582.04 | 12.30MB | 4.06MB | 6.97k | 375.88 | 8.01k | 65.33% | 14.39ms | 3.29ms | 31.70ms | 74.40% | 12.71ms | 17.99ms | 19.19ms | 25.49ms |
bin/server_crystal_router_cr | http://127.0.0.1:3000/user | 0 | 184275 | 60973.94 | 10.90MB | 3.61MB | 6.17k | 641.74 | 7.34k | 77.33% | 15.77ms | 4.07ms | 220.76ms | 75.89% | 13.45ms | 19.68ms | 20.93ms | 27.22ms |
bin/server_crystal_router_cr | http://127.0.0.1:3000/user/0 | 0 | 187307 | 61829.82 | 16.43MB | 5.42MB | 6.27k | 535.55 | 7.07k | 64.67% | 15.24ms | 3.78ms | 221.84ms | 84.12% | 13.65ms | 17.95ms | 20.81ms | 26.51ms |
bin/server_go_fasthttprouter | http://127.0.0.1:3000/ | 0 | 1416603 | 457637.75 | 125.64MB | 40.59MB | 47.33k | 9.31k | 93.27k | 78.93% | 1.96ms | 1.83ms | 22.86ms | 87.75% | 1.30ms | 2.36ms | 4.19ms | 9.18ms |
bin/server_go_fasthttprouter | http://127.0.0.1:3000/user | 0 | 1317451 | 430578.24 | 116.85MB | 38.19MB | 43.87k | 6.59k | 75.69k | 72.33% | 2.10ms | 1.97ms | 206.20ms | 89.95% | 1.70ms | 2.44ms | 4.01ms | 8.88ms |
bin/server_go_fasthttprouter | http://127.0.0.1:3000/user/0 | 0 | 1275431 | 413076.2 | 199.48MB | 64.61MB | 42.47k | 7.86k | 72.81k | 74.33% | 2.24ms | 2.18ms | 42.37ms | 88.79% | 1.60ms | 2.66ms | 4.66ms | 10.87ms |
bin/server_ruby_flame | http://127.0.0.1:3000/ | 0 | 8875 | 2917.49 | 329.35KB | 108.27KB | 330.02 | 140.30 | 1.01k | 73.70% | 5.40ms | 6.44ms | 54.79ms | 87.55% | 3.51ms | 7.57ms | 13.15ms | 30.22ms |
bin/server_ruby_flame | http://127.0.0.1:3000/user | 0 | 7557 | 2487.93 | 280.44KB | 92.33KB | 316.12 | 141.93 | 1.03k | 73.75% | 6.33ms | 8.38ms | 89.83ms | 86.73% | 2.73ms | 9.15ms | 16.89ms | 38.00ms |
bin/server_ruby_flame | http://127.0.0.1:3000/user/0 | 0 | 6388 | 2079.89 | 424.20KB | 138.12KB | 213.69 | 90.10 | 525.00 | 66.33% | 7.50ms | 8.60ms | 104.16ms | 87.15% | 5.07ms | 10.53ms | 18.23ms | 38.91ms |
bin/server_ruby_rails | http://127.0.0.1:3000/ | 0 | 1918 | 631.33 | 327.78KB | 107.89KB | 128.33 | 9.37 | 141.00 | 72.00% | 7.81ms | 1.19ms | 30.41ms | 90.35% | 7.68ms | 8.18ms | 8.72ms | 10.37ms |
bin/server_ruby_rails | http://127.0.0.1:3000/user | 0 | 1915 | 630.34 | 327.27KB | 107.72KB | 160.13 | 56.07 | 277.00 | 74.17% | 7.83ms | 1.01ms | 23.44ms | 82.92% | 7.78ms | 8.23ms | 8.73ms | 9.97ms |
bin/server_ruby_rails | http://127.0.0.1:3000/user/0 | 0 | 1608 | 529.05 | 466.38KB | 153.45KB | 107.57 | 7.96 | 121.00 | 82.00% | 9.32ms | 1.20ms | 28.02ms | 87.00% | 9.28ms | 9.70ms | 10.23ms | 12.05ms |
bin/server_rust_iron | http://127.0.0.1:3000/ | 0 | 1076468 | 349690.73 | 76.99MB | 25.01MB | 51.46k | 31.43k | 99.73k | 46.67% | 261.87us | 534.72us | 20.50ms | 98.06% | 198.00us | 275.00us | 423.00us | 1.13ms |
bin/server_rust_iron | http://127.0.0.1:3000/user | 0 | 1028626 | 338904.95 | 73.57MB | 24.24MB | 49.23k | 28.38k | 100.38k | 61.43% | 271.08us | 485.81us | 33.75ms | 97.32% | 195.00us | 305.00us | 441.00us | 1.23ms |
bin/server_rust_iron | http://127.0.0.1:3000/user/0 | 0 | 939644 | 307082.64 | 117.39MB | 38.36MB | 39.32k | 26.44k | 101.47k | 58.75% | 312.61us | 531.03us | 52.51ms | 95.82% | 214.00us | 343.00us | 552.00us | 1.82ms |
bin/server_rust_nickel | http://127.0.0.1:3000/ | 0 | 985985 | 322166.47 | 122.24MB | 39.94MB | 110.26k | 10.01k | 144.77k | 68.89% | 47.67us | 23.06us | 5.76ms | 82.79% | 41.00us | 52.00us | 84.00us | 102.00us |
bin/server_rust_nickel | http://127.0.0.1:3000/user | 0 | 760562 | 245334.51 | 94.29MB | 30.42MB | 123.36k | 13.53k | 139.37k | 70.97% | 59.75us | 40.45us | 11.81ms | 99.22% | 61.00us | 77.00us | 85.00us | 99.00us |
bin/server_rust_nickel | http://127.0.0.1:3000/user/0 | 0 | 781063 | 257566.94 | 122.91MB | 40.53MB | 130.89k | 4.40k | 139.48k | 63.33% | 57.72us | 18.08us | 1.29ms | 60.75% | 60.00us | 71.00us | 79.00us | 93.00us |
is flame really this slow?
It's slower than C++, Go, Rust and Crystal, of course. But faster than Rails in 4 times. :grin:
I think comparing with others Ruby frameworks is more relevant.
Reference: https://github.com/luislavena/bench-micro
I agree with @AlexWayfer. The Ruby-based frameworks will only have a good performance from version 2.6, which uses JIT.
The Ruby-based frameworks will only have a good performance from version 2.6, which uses JIT.
It's not a fact. :grimacing:
For now, JIT compiler even makes Rails a little slower.
https://medium.com/@k0kubun/the-method-jit-compiler-for-ruby-2-6-388ee0989c13
I think comparing with others Ruby frameworks is more relevant.
Not necessarily, because why would someone pick a slow language when a faster and often easier one is available (say elixir compared to ruby, similar syntax, entirely parallel and concurrent, keeps up even with the compiled languages, or crystal if you don't need parallel abilities, or even python, which as a language is around the speed of ruby, but it has libraries that run circles around ruby, any of which will give you far better use of your resources)?
It's slower than C++, Go, Rust and Crystal, of course. But faster than Rails in 4 times. grin
Those were just comparisons used, I was mostly pointing it out to rails, which was amazingly slowly as compared to anything. Just testing it to the ruby and python servers the results are:
╰─➤ tools/stats.exs -w 1 -d 3 python ruby 1 ↵ Total Cores: 16 Concurrent Connections: 1000 Threads: 10 Warmup: 1 seconds Duration: 3 seconds
Processing servers:
Processing: bin/server_python_django Processing: bin/server_python_flask Processing: bin/server_python_flask.py Processing: bin/server_python_japronto Processing: bin/server_python_sanic Processing: bin/server_python_tornado Processing: bin/server_ruby_flame Processing: bin/server_ruby_rack-routing Processing: bin/server_ruby_rails Processing: bin/server_ruby_roda Processing: bin/server_ruby_sinatra
Path | URL | Errors | Total Requests Count | Total Requests/s | Total Requests Throughput | Total Throughput/s | Req/s Avg | Req/s Stdev | Req/s Max | Req/s +/- | Latency Avg | Latency Stdev | Latency Max | Latency +/- | 50% | 75% | 90% | 99% |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bin/server_python_django | http://127.0.0.1:3000/ | 1358 | 1358 | 448.75 | 323.59KB | 106.93KB | 62.68 | 57.42 | 252.00 | 79.51% | 249.31ms | 209.32ms | 1.66s | 80.71% | 162.18ms | 212.89ms | 646.42ms | 733.52ms |
bin/server_python_django | http://127.0.0.1:3000/user | 629 | 629 | 204.0 | 149.88KB | 48.61KB | 68.57 | 54.18 | 191.00 | 55.56% | 127.01ms | 25.44ms | 332.03ms | 91.57% | 123.70ms | 124.79ms | 142.29ms | 323.19ms |
bin/server_python_django | http://127.0.0.1:3000/user/0 | 1741 | 1741 | 575.24 | 414.85KB | 137.07KB | 72.28 | 61.77 | 290.00 | 73.50% | 196.29ms | 147.86ms | 1.67s | 89.20% | 167.64ms | 169.25ms | 348.74ms | 647.11ms |
bin/server_python_flask | http://127.0.0.1:3000/ | 1856 | 1856 | 610.82 | 442.25KB | 145.55KB | 73.24 | 57.50 | 240.00 | 72.87% | 183.78ms | 128.01ms | 1.82s | 92.03% | 162.00ms | 162.63ms | 172.43ms | 600.20ms |
bin/server_python_flask | http://127.0.0.1:3000/user | 382 | 382 | 123.67 | 91.02KB | 29.47KB | 62.69 | 53.95 | 190.00 | 81.03% | 132.57ms | 63.38ms | 511.12ms | 91.88% | 96.04ms | 162.48ms | 186.98ms | 506.16ms |
bin/server_python_flask | http://127.0.0.1:3000/user/0 | 1858 | 1858 | 613.17 | 442.73KB | 146.11KB | 70.16 | 43.76 | 212.00 | 65.12% | 188.57ms | 144.60ms | 1.83s | 92.09% | 168.84ms | 169.41ms | 290.13ms | 731.76ms |
bin/server_python_flask.py | http://127.0.0.1:3000/ | 0 | 4952 | 1634.71 | 739.92KB | 244.25KB | 346.09 | 233.53 | 757.00 | 52.52% | 75.54ms | 132.58ms | 1.72s | 94.65% | 42.04ms | 46.62ms | 47.00ms | 645.31ms |
bin/server_python_flask.py | http://127.0.0.1:3000/user | 0 | 0 | 0.0 | 0.00B | 0.00B | 0.00 | 0.00 | 0.00 | -nan% | 0.00us | 0.00us | 0.00us | -nan% | 0.00us | 0.00us | 0.00us | 0.00us |
bin/server_python_flask.py | http://127.0.0.1:3000/user/0 | 0 | 1249 | 411.57 | 223.21KB | 73.55KB | 231.84 | 219.12 | 800.00 | 70.59% | 58.12ms | 38.31ms | 255.30ms | 89.67% | 44.64ms | 48.87ms | 75.21ms | 199.01ms |
bin/server_python_japronto | http://127.0.0.1:3000/ | 0 | 307733 | 101135.24 | 23.18MB | 7.62MB | 10.31k | 392.68 | 11.20k | 67.67% | 9.56ms | 578.41us | 25.08ms | 65.02% | 9.52ms | 10.05ms | 10.14ms | 10.23ms |
bin/server_python_japronto | http://127.0.0.1:3000/user | 0 | 305022 | 98617.8 | 22.98MB | 7.43MB | 10.22k | 0.92k | 18.25k | 97.00% | 9.82ms | 0.94ms | 26.81ms | 97.26% | 9.95ms | 10.18ms | 10.30ms | 10.44ms |
bin/server_python_japronto | http://127.0.0.1:3000/user/0 | 0 | 260557 | 85448.16 | 27.09MB | 8.88MB | 9.03k | 646.01 | 15.27k | 93.10% | 11.11ms | 0.99ms | 28.77ms | 96.94% | 11.30ms | 11.40ms | 11.53ms | 12.81ms |
bin/server_python_sanic | http://127.0.0.1:3000/ | 0 | 525920 | 170569.66 | 59.69MB | 19.36MB | 18.52k | 3.82k | 48.88k | 83.16% | 6.73ms | 8.16ms | 140.57ms | 92.93% | 4.55ms | 7.55ms | 13.51ms | 44.63ms |
bin/server_python_sanic | http://127.0.0.1:3000/user | 0 | 474669 | 153348.02 | 53.87MB | 17.40MB | 16.91k | 3.33k | 53.43k | 92.20% | 6.00ms | 3.36ms | 33.10ms | 65.86% | 5.29ms | 7.97ms | 10.58ms | 15.44ms |
bin/server_python_sanic | http://127.0.0.1:3000/user/0 | 0 | 546407 | 176344.46 | 77.64MB | 25.06MB | 18.85k | 4.72k | 48.71k | 72.76% | 5.73ms | 4.51ms | 56.12ms | 84.84% | 4.44ms | 7.09ms | 10.83ms | 23.68ms |
bin/server_python_tornado | http://127.0.0.1:3000/ | 0 | 6410 | 2105.58 | 1.19MB | 398.91KB | 253.50 | 160.14 | 710.00 | 63.89% | 145.24ms | 88.37ms | 603.15ms | 61.70% | 192.93ms | 197.20ms | 206.39ms | 377.62ms |
bin/server_python_tornado | http://127.0.0.1:3000/user | 0 | 6319 | 2055.49 | 0.87MB | 289.05KB | 311.86 | 226.96 | 1.18k | 76.50% | 140.34ms | 54.36ms | 1.02s | 71.07% | 172.11ms | 172.78ms | 180.01ms | 265.80ms |
bin/server_python_tornado | http://127.0.0.1:3000/user/0 | 0 | 6091 | 2008.28 | 1.30MB | 439.31KB | 245.79 | 146.39 | 676.00 | 65.57% | 145.63ms | 58.24ms | 1.05s | 68.48% | 175.21ms | 176.21ms | 190.32ms | 285.98ms |
bin/server_ruby_flame | http://127.0.0.1:3000/ | 0 | 8766 | 2892.32 | 325.30KB | 107.33KB | 325.89 | 228.25 | 1.25k | 66.30% | 5.45ms | 7.40ms | 76.06ms | 87.89% | 2.39ms | 7.69ms | 14.36ms | 35.01ms |
bin/server_ruby_flame | http://127.0.0.1:3000/user | 0 | 7552 | 2484.94 | 280.25KB | 92.21KB | 280.72 | 113.67 | 626.00 | 70.00% | 6.35ms | 8.38ms | 90.48ms | 86.86% | 2.78ms | 9.27ms | 17.07ms | 38.16ms |
bin/server_ruby_flame | http://127.0.0.1:3000/user/0 | 0 | 6230 | 2050.59 | 413.71KB | 136.17KB | 231.60 | 84.55 | 530.00 | 66.30% | 7.68ms | 9.00ms | 108.30ms | 86.45% | 4.77ms | 11.14ms | 19.15ms | 39.47ms |
bin/server_ruby_rack-routing | http://127.0.0.1:3000/ | 0 | 15026 | 4968.24 | 557.61KB | 184.37KB | 558.67 | 290.85 | 2.68k | 82.22% | 3.19ms | 4.65ms | 59.05ms | 87.84% | 1.25ms | 4.32ms | 8.75ms | 21.43ms |
bin/server_ruby_rack-routing | http://127.0.0.1:3000/user | 0 | 12765 | 4201.85 | 473.70KB | 155.93KB | 474.67 | 215.32 | 1.38k | 69.26% | 3.75ms | 4.60ms | 53.30ms | 87.67% | 2.38ms | 5.35ms | 9.26ms | 21.80ms |
bin/server_ruby_rack-routing | http://127.0.0.1:3000/user/0 | 0 | 12049 | 3981.71 | 800.13KB | 264.41KB | 448.09 | 192.98 | 1.17k | 60.74% | 3.98ms | 4.93ms | 45.03ms | 86.55% | 2.18ms | 5.83ms | 10.45ms | 22.12ms |
bin/server_ruby_rails | http://127.0.0.1:3000/ | 0 | 1793 | 590.32 | 306.42KB | 100.89KB | 119.95 | 8.64 | 131.00 | 51.33% | 8.35ms | 1.34ms | 32.00ms | 93.98% | 8.26ms | 8.66ms | 9.23ms | 10.67ms |
bin/server_ruby_rails | http://127.0.0.1:3000/user | 0 | 1834 | 606.05 | 313.43KB | 103.57KB | 153.34 | 53.45 | 260.00 | 75.00% | 8.17ms | 0.94ms | 22.90ms | 89.20% | 8.17ms | 8.36ms | 8.77ms | 10.99ms |
bin/server_ruby_rails | http://127.0.0.1:3000/user/0 | 0 | 1648 | 536.45 | 477.98KB | 155.59KB | 110.30 | 7.13 | 130.00 | 59.33% | 9.09ms | 1.22ms | 29.12ms | 85.07% | 8.98ms | 9.55ms | 10.15ms | 11.64ms |
bin/server_ruby_roda | http://127.0.0.1:3000/ | 0 | 17792 | 5801.49 | 1.07MB | 356.93KB | 595.66 | 225.80 | 1.37k | 63.33% | 2.69ms | 2.90ms | 29.83ms | 86.72% | 1.85ms | 3.86ms | 6.42ms | 13.23ms |
bin/server_ruby_roda | http://127.0.0.1:3000/user | 0 | 17214 | 5676.05 | 1.03MB | 349.21KB | 640.47 | 367.90 | 1.64k | 66.67% | 2.78ms | 3.37ms | 52.26ms | 88.31% | 1.81ms | 3.82ms | 6.61ms | 15.73ms |
bin/server_ruby_roda | http://127.0.0.1:3000/user/0 | 0 | 14883 | 4892.88 | 1.32MB | 444.37KB | 553.40 | 219.09 | 1.11k | 60.00% | 3.22ms | 3.05ms | 50.26ms | 79.20% | 2.43ms | 4.59ms | 7.17ms | 13.49ms |
bin/server_ruby_sinatra | http://127.0.0.1:3000/ | 0 | 6586 | 2172.74 | 1.08MB | 364.95KB | 244.84 | 146.01 | 727.00 | 69.26% | 7.28ms | 8.74ms | 81.27ms | 87.70% | 4.68ms | 10.15ms | 17.74ms | 41.34ms |
bin/server_ruby_sinatra | http://127.0.0.1:3000/user | 0 | 6012 | 1979.59 | 0.99MB | 332.51KB | 223.37 | 120.07 | 730.00 | 67.41% | 7.97ms | 9.05ms | 71.70ms | 85.93% | 5.18ms | 11.67ms | 19.98ms | 40.72ms |
bin/server_ruby_sinatra | http://127.0.0.1:3000/user/0 | 0 | 5736 | 1873.92 | 1.10MB | 369.66KB | 191.85 | 102.85 | 505.00 | 72.33% | 8.35ms | 9.24ms | 102.63ms | 86.75% | 5.64ms | 11.88ms | 20.11ms | 42.28ms |
Overall I'm curious if the ruby servers are parallel or are they single core? They should be made parallel if they are not.
@OvermindDL1 try Hanamirb.org =) One factor I analyze is memory consumption and CPU usage, thinking about req/sec and performance I consider Sinatra and Hanami as the best (Ruby).
@AlexWayfer Yeah, but right now, there's still something to be done. Has the 3x3 as a future idea https://developers.redhat.com/blog/2018/03/22/ruby-3x3-performance-goal/ https://medium.com/@k0kubun/benchmark-driver-designed-for-ruby-3x3-6a5eeb1d1494
Not necessarily, because why would someone pick a slow language when a faster and often easier one is available (say elixir compared to ruby, similar syntax, entirely parallel and concurrent, keeps up even with the compiled languages, or crystal if you don't need parallel abilities, or even python, which as a language is around the speed of ruby, but it has libraries that run circles around ruby, any of which will give you far better use of your resources)?
Oh, good. Let's start holy war about programming languages, yeah? Are you sure that you want to discuss this?
Those were just comparisons used, I was mostly pointing it out to rails, which was amazingly slowly as compared to anything.
Let's compare speed of a new car with speed of rockets, because speed of other cars is amazingly slowly as compared to rockets, planes, etc.
Just testing it to the ruby and python servers the results are:
Good, Flame is faster than Rails, Sinatra, Flask, Django — it's my goal.
Overall I'm curious if the ruby servers are parallel or are they single core?
Depends on config. Ruby frameworks in this repo use Puma, which has 1 worker by default.
Oh, good. Let's start holy war about programming languages, yeah? Are you sure that you want to discuss this?
Heh, nothing meant by the language, just that this is the whole point of this repo, to show the overhead of the network communication used by a given language_library combination (as that will be the ultimate throttle of how much data you can process, regardless of anything else in the language). :-)
Flask, Django
Actually these are buggy as heck, but they aren't running properly, they are reporting nothing but errors so I think something is wrong with their code but I haven't looked in to it yet to see why... I wouldn't expect them to be fast though as they are designed for little micro-setups (flask for micro-api's, django for micro-module-based sites), rails as a comparison is designed for significantly more. Sinatra I've never used so I don't know about it.
Depends on config. Ruby frameworks in this repo use Puma, which has 1 worker by default.
Ooo, could you fix that to have it use a thread count of num_of_cores
or so? That would make them significantly more representative! :-)
Flame is faster than Rails
At this point it doesn't even count I'd say, if ruby is being limited to a single core then it is being artificially reduced in such a way that would not actually be done in 'real-life', once that is fixed then their numbers will be more accurate. :-)
@AlexWayfer @OvermindDL1 We are leaving outside the focus of the topic, the idea is to analyze the framework and not the language, the framework makes sense to compare with some of the same language, it makes no sense to compare in that sense of conversation, each will meet a certain expectation according to the Problem, the developer will choose what more prefers according to their ideas (community, stability, plugins, performance, etc...)
Ooo, could you fix that to have it use a thread count of num_of_cores or so?
Yes, I can. Should we set num_of_cores - 1
and leave 1 core for process with requests?
And how many cores do other languages use in this repo?
Yes, I can. Should we set num_of_cores - 1 and leave 1 core for process with requests?
I actually did testing in regards to that and it doesn't help. With a multi-core server and a multi-core benchmarker then the server using the core count and the benchmarker using 2/3'rds of the core count got the fastest speeds (I tested full on both, -1 on each one at a time, and a few other variations). I'd say just let it use num_of_cores directly. :-)
And what number of cores other languages are using?
Go, Rust, Nim, and C++ are using num_of_cores on the ones I checked, I'm unsure about the rest.
kalicki: Honestly I have no clue what you were saying in that last message, but my head is full of VOIP phone firmware and SQL right now... ^.^;
Topic about cores more relevant to #69 than this issue, I guess.
Fell free to debate about your ideas on gitter
=> https://gitter.im/which_is_the_fastest/Lobby
waghanza closed this 4 hours ago
Why?
@AlexWayer misclicking
https://github.com/AlexWayfer/flame
ping to @AlexWayfer