/benchmark

alguns testes de stress para divertimos um pouco com diversas langs usadas em aplicações web para backend

Primary LanguageGoMIT LicenseMIT

Benchmark

O objetivo deste repo é criar cenários para observar o desempenho de linguagens utilizadas na web para desenvolvimento de backend linguagens como:

  • Go
  • C
  • C++
  • Java
  • Python
  • Ruby
  • PHP
  • C#
  • Rust
  • Javascript Nodejs
  • Javascript Deno
  • Javascript Bun
  • Dart
  • Lua
  • Elixir
  • VLang

Poderemos propor diversos cenários e linguagens de programação e implementar podem ficar a vontade em enviar seu PR. Tudo é para matar a curiosidade mesmo, nada muito complexo quando tratamos de desenvolvimento em backend para web.

A máquina que está sendo usada para fazer os testes é:

Coluna 1 Coluna 2
Vendor Genuine Intel
Model Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
RAM 32G
Cache 12288kb
siblings/núcleos 12
bogomips 5199.98
address sizes 39 bits physical, 48 bits virtual

Usamos o k6 e wrk para fazer nossos testes de stress.

$ cd k6
$ k6 run -d 90s -u 100 script-get.js

          /\      |‾‾| /‾‾/   /‾‾/   
     /\  /  \     |  |/  /   /  /    
    /  \/    \    |     (   /   ‾‾\  
   /          \   |  |\  \ |  (‾)  | 
  / __________ \  |__| \__\ \_____/ .io
$ wrk -t12 -c100 -d15s http://localhost:8080/v1/user
Running 15s test @ http://localhost:8080/v1/user
  12 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.09ms    1.75ms  59.07ms   98.98%
    Req/Sec     8.06k     1.07k   26.57k    86.95%
  1449705 requests in 15.10s, 5.20GB read
Requests/sec:  96009.25
Transfer/sec:    352.69MB

O nosso objetivo é só termos uma noção quando o assunto é memória, cpu, quantidade de requisições suportadas e os tempos médios de respostas, nada muito complexo só para matar a curiosidade mesmo.