Ca reste effectivement chargé en CPU, particulièrement en kernel.
Voici sur un i7 3930K à 4,1Ghz :
>nspeed_windows_amd64.exe -verbose server -n 1 get -w 1 http://localhost:7333/g/10g
Jobs:
0 server {Address: "localhost", port: 7333, IPversion: 0, max_size: 40.0 GB, max_request duration: 10000000000, UseTLS: false, maxruns: 1, max life: 0s}
1 {Command: GET, URL: "http://localhost:7333/g/10g", IPversion: 0, Address: , Instance: 0, timeout: 8s}
12:43AM INF nspeed listening on http://[::1]:7333 job=0
12:43AM INF waking up job=1
12:43AM INF | 3| 3| 4| 1| 0| 0| 0| 0| 0| 3| 0| 0|, active jobs: 2 / active goroutines: 6
12:43AM INF LocalAddr=[::1]:59672 RemoteAddr=[::1]:7333 job=1 protocol=HTTP/1.1
12:43AM INF | 2| 0| 0| 95| 5| 0| 5| 24| 0| 46| 3| 0|, active jobs: 2 / active goroutines: 10
12:43AM INF | 3| 3| 2| 36| 11| 0| 0| 0| 0| 92| 39| 2|, active jobs: 2 / active goroutines: 10
12:43AM INF | 3| 5| 5| 58| 14| 2| 2| 2| 2| 34| 69| 0|, active jobs: 2 / active goroutines: 10
12:43AM INF | 5| 6| 0| 80| 6| 0| 2| 14| 2| 0| 80| 2|, active jobs: 2 / active goroutines: 10
12:43AM INF | 0| 3| 3| 65| 6| 0| 0| 50| 0| 61| 2| 0|, active jobs: 2 / active goroutines: 10
12:43AM INF | 3| 13| 3| 47| 3| 0| 2| 72| 0| 0| 50| 0|, active jobs: 2 / active goroutines: 10
12:43AM INF | 3| 2| 5| 2| 5| 0| 0| 71| 0| 63| 44| 0|, active jobs: 2 / active goroutines: 10
12:43AM INF | 6| 5| 3| 11| 6| 3| 0| 64| 5| 0|100| 2|, active jobs: 2 / active goroutines: 10
12:43AM INF ReadBPS=5778172813 TotalRead=5776998400 TotalWrite=0 WriteBPS=0 duration=7.998374 job=0 url="download 10g to [::1]:59672"
12:43AM INF processed read:5776945152 / write: 0 bytes job=1
12:43AM INF 1 max total requests reached, shutting down server job=0
12:43AM INF shutdown finished job=0
job 0 %!s(<nil>) Job| Read| Write| Time|target
Job 1| 5.8 Gbps| 0 bps| 8.00|get http://localhost:7333/g/10g
Total| 5.8 Gbps| 0 bps| 8.00|
Rien que sous WSL2, ça reste limité par un coeur, mais c'est bien mieux :
loic@i7:~$ ./nspeed_linux_amd64 -verbose server -n 1 get -w 1 http://localhost:7333/g/10g
Jobs:
0 server {Address: "localhost", port: 7333, IPversion: 0, max_size: 40.0 GB, max_request duration: 10000000000, UseTLS: false, maxruns: 1, max life: 0s}
1 {Command: GET, URL: "http://localhost:7333/g/10g", IPversion: 0, Address: , Instance: 0, timeout: 8s}
1:02AM INF nspeed listening on http://127.0.0.1:7333 job=0
1:02AM INF waking up job=1
1:02AM INF | 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|, active jobs: 2 / active goroutines: 7
1:02AM INF LocalAddr=127.0.0.1:53322 RemoteAddr=127.0.0.1:7333 job=1 protocol=HTTP/1.1
1:02AM INF | 10| 0| 24| 1| 0| 64| 0| 0| 0| 96| 0| 0|, active jobs: 2 / active goroutines: 10
1:02AM INF | 14| 0| 73| 0| 0| 0| 0| 0| 0| 98| 0| 1|, active jobs: 2 / active goroutines: 10
1:02AM INF | 75| 0| 83| 1| 0| 26| 0| 0| 0| 0| 0| 0|, active jobs: 2 / active goroutines: 10
1:02AM INF |100| 0| 29| 0| 0| 52| 0| 0| 0| 0| 0| 0|, active jobs: 2 / active goroutines: 10
1:02AM INF ReadBPS=16108688729 TotalRead=9999994880 TotalWrite=5120 WriteBPS=8247 duration=4.9662614000000005 job=0 url="download 10g to 127.0.0.1:53322"
1:02AM INF 1 max total requests reached, shutting down server job=0
1:02AM INF shutdown finished job=0
1:02AM INF processed read:10000000000 / write: 0 bytes job=1
job 0 %!s(<nil>) Job| Read| Write| Time|target
Job 1| 16.1 Gbps| 0 bps| 4.97|get http://localhost:7333/g/10g
Total| 16.1 Gbps| 0 bps| 4.97|
Sur un Ryzen 5 3500X (plus récent, mais aussi sans les pénalités liées aux failles Meltdown et autres sur les syscalls), j'ai entre 9,5Gbps et 11,5Gps (plus de variation), avec en gros (Windows semble migrer un peu les threads) un cœur saturé et un autre très chargé.
WSL2 fait 2 fois mieux (moins de gain que sur l'autre machine).
Sinon, avec l'option "-verbose", les traces colorées devraient dépendre des capacités du terminal.
Avec Windows Terminal, ça fonctionne.
Dans un cmd.exe simple, ce n'est pas géré donc il affiche les séquences d'échappement.
Sous Linux, il garde la couleur quand on redirige dans un fichier, donc même là ce n'est pas testé (certes on peut utiliser "less -R" pour voir les logs en couleur).