Как стать автором
Обновить
1
0
Игорь @iemelyanov

Программист

Отправить сообщение

CocroachDB, InfluxDB, VictoriaMetrics, Vitess, Prometheus, NATS, Minio, Caddy, Hugo, GVisor - это то, что быстро пришло на ум помимо того, что указано в статье.

К вышеперечисленны еще можно добавить Zig в котором обобщенное программирование и compile-time execution сделаны совершенно иным образом и возможно даже лучше, при этом так же исповедуя zero-cost абстракции!

Антон, вы не рассматривали github.com/timberio/vector как очень шуструю альтернативу logstash?
Код на Go не честный!

В примере на C++ у вас используется 32 битный int, а в Go int не является типом с фиксированной размерностью, а по сему на 64-х битном CPU он соответствует int64 и как следствие результат «хуже»!

Ниже корректный пример который выполняется на моем i7-8565U за 1.691030168s, что практически эквивалентно C++.

package main

import (
	"fmt"
	"math"
	"time"
)

func isPrime(num int32) bool {
	if num == 2 {
		return true
	}
	if num <= 1 || num%2 == 0 {
		return false
	}
	to := int32(math.Sqrt(float64(num)))
	for div := int32(3); div <= to; div += 2 {
		if num%div == 0 {
			return false
		}
	}
	return true
}

func main() {
	st := time.Now()
	for i := int32(0); i < 10_000_000; i++ {
		isPrime(i)
	}
	fmt.Printf("%+v\n", time.Since(st))
}

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность