Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sapvs/perf-go
Benchmarks of different approaches for common problem in go
https://github.com/sapvs/perf-go
algorithms atomic benchmark counter factorial fibonacci fizzbuzz go golang json prime-numbers protobuf xml
Last synced: about 2 months ago
JSON representation
Benchmarks of different approaches for common problem in go
- Host: GitHub
- URL: https://github.com/sapvs/perf-go
- Owner: sapvs
- License: mit
- Created: 2022-09-22T06:17:23.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-20T09:33:43.000Z (7 months ago)
- Last Synced: 2024-06-21T23:46:03.218Z (7 months ago)
- Topics: algorithms, atomic, benchmark, counter, factorial, fibonacci, fizzbuzz, go, golang, json, prime-numbers, protobuf, xml
- Language: Go
- Homepage:
- Size: 3.68 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# perf-go
Benchmarks of different approaches for common problem in go## Run tests
```
make
```## Results (On my PC ;) )
### Counter problem using [sync.atomic](https://pkg.go.dev/sync/atomic) versus [sync.mutex](https://pkg.go.dev/sync#Mutex)
|Counter|Total|ns/op|
|-|-:|-:|
|BenchmarkCounterAtomic-4|69815256|18.02|
|BenchmarkCounterMutex-4|24769442|46.93|### Factorial recursive vs serial
|Factorial|Total|ns/op|
|-|-:|-:|
|BenchmarkFactorialSerial/FactorialSerial-20-4|113081472|10.46|
|BenchmarkFactorialSerial/FactorialRecursive-20-4|27576867|40.32|
|BenchmarkFactorialParallel/FactorialSerial-20-4|276191018|4.326|
|BenchmarkFactorialParallel/FactorialRecursive-20-4|72123966|15.11|### Fibonacci Classic vs DP
|Fibbonacci|Total|ns/op|
|-|-:|-:|
|BenchmarkFibonnaciSerial/FibonacciSumClassic-20-4|31941|37669|
|BenchmarkFibonnaciSerial/FibonacciSumDP-20-4|59457067|18.42|
|BenchmarkFibbonacciParallel-4|75055|15622|### Fizzbuzz three approaches
|FizzBuzz|Total|ns/op|
|-|-:|-:|
|BenchmarkFizzBuzzSer/v1-1-4|290979|3659|
|BenchmarkFizzBuzzSer/v2-1-4|250216|5175|
|BenchmarkFizzBuzzSer/v3-1-4|262671|4178|
|BenchmarkFizzBuzzPar/v1-1-4|526555|1991|
|BenchmarkFizzBuzzPar/v2-1-4|480120|2218|
|BenchmarkFizzBuzzPar/v3-1-4|494432|2205|### Check if number is prime, Three ways worst to best
|Is Prime|Total|ns/op|
|-|-:|-:|
|BenchmarkIsPrimeSerial/PrimeV1-1-4|51702789|19.60|
|BenchmarkIsPrimeSerial/PrimeV2-1-4|48296462|22.95|
|BenchmarkIsPrimeSerial/PrimeV3-1-4|75659934|15.84|
|BenchmarkIsPrimeParallel-4|49888394|21.62|### JSON vs XML Vs ProtoBuf
|JSON vs XML|Total|ns/op|mem/op|alloc/op|
|-|-:|-:|-:|-:|
|BenchmarkToJSON-4|332880|3214|179|3|
|BenchmarkToXML-4|99578|11726|4632|11|
|BenchmarkFromJSON-4|167470|7137|312|7|
|BenchmarkFromXML-4|46717|25749|1608|34|
|BenchmarkParToXML-4|190856|6110|4632|11|
|BenchmarkParToJSON-4|716979|1718|179|3|
|BenchmarkParFromJSON-4|336836|3518|312|7|
|BenchmarkParFromXML-4|74744|15033|1608|34|
|BenchmarkToProto-4|6285468|175.3|80|2|
|BenchmarkFromProto-4|5491707|211.5|72|2|
|BenchmarkParToProto-4|10795147|100.6|80|2|
|BenchmarkParFromProto-4|9810102|114.5|72|2|