Benchmark environment:
- Fastify (https://github.com/fastify/fastify),
next
branch (commit 3486afe04a05c0874c63010f7525361a316905fe) - Node.js v12.13.1
- Autocannon (https://github.com/mcollina/autocannon) v4.6.0
Web app:
package main | |
import ( | |
"context" | |
"fmt" | |
"log" | |
"math/rand" | |
"strconv" | |
"strings" | |
"time" |
package main | |
import ( | |
"context" | |
"log" | |
"strconv" | |
"time" | |
qdb "github.com/questdb/go-questdb-client" | |
) |
public class Main { | |
public static void main(String[] args) { | |
int[] arr = new int[]{1, 2, 3}; | |
for (int i = 0, n = arr.length; i < n; i++) { | |
System.out.println(arr[i]); | |
} | |
for (int n : arr) { |
$ go version | |
go version go1.19.3 linux/arm64 | |
$ go test -run='^$' -cpu=1,2,4,8,16,32,64 -bench . -count=30 -timeout=0 | tee bench.txt | |
$ benchstat bench.txt | tee benchstat.txt | |
name time/op | |
Counter 27.3ns ± 1% | |
Counter-2 27.2ns ±11% | |
Counter-4 15.3ns ± 8% | |
Counter-8 7.43ns ± 7% |
'use strict' | |
const keys = [ | |
'TCN', | |
'alternate-protocol', | |
':', | |
'@@', | |
'中文呢', | |
'((((())))', | |
':alternate-protocol', |
interface MetricsStorage { | |
store(dataPoints: DataPoint[]): Promise<void>; | |
queryRange(query: Query): Promise<DataPoint[]>; | |
queryLatest(query: Query): Promise<DataPoint | null>; | |
} |
interface DataPoint { | |
metric: string; | |
tags: Map<string, string>; | |
time: number; | |
value: number; | |
} |
'use strict'; | |
const crypto = require('crypto'); | |
const net = require('net'); | |
const writeCount = 10000000; | |
const batchSize = 100; | |
const chunkSize = 128; | |
const chunks = []; | |
const state = { writes: 0 }; |
const http = require('http'); | |
const { AsyncLocalStorage } = require('async_hooks'); | |
const asyncLocalStorage = new AsyncLocalStorage(); | |
function print(msg) { | |
const id = asyncLocalStorage.getStore(); | |
console.log(`${id !== undefined ? id : '-'}:`, msg); | |
} |
Benchmark environment:
next
branch (commit 3486afe04a05c0874c63010f7525361a316905fe)Web app: