First of all, thanks for this codebase.
It's a nice way to do some FLAC experimentation and get more familiar with golang, nice.
I do have an interest of FLAC encoding and decoding in production also, so couldn't resist doing some benchmarks.
For the record, using here AMD Ryzen 9 7900 12-Core Processor and v1.0.13.
$ /usr/bin/time -v go run main.go -f sample.wav 2>&1 | grep time
Command being timed: "go run main.go -f sample.wav"
User time (seconds): 6.01
System time (seconds): 10.02
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.85
Versus flac 1.4.3 CLI:
$ /usr/bin/time -v flac sample.wav -f -o sample_flac.flac 2>&1 | grep time
Command being timed: "flac sample.wav -f -o sample_flac.flac"
User time (seconds): 0.74
System time (seconds): 0.14
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.93
I don't point this out to roast golang or this codebase, but it does look like there is a good possibility of tuning the performance?
One other data point with compression enabled via mewkiz/flac-tools PR #1
$ /usr/bin/time -v go run main.go -c -f sample.wav 2>&1 | grep time
Command being timed: "go run main.go -c -f sample.wav"
User time (seconds): 11.15
System time (seconds): 10.86
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:20.65
First of all, thanks for this codebase.
It's a nice way to do some FLAC experimentation and get more familiar with golang, nice.
I do have an interest of FLAC encoding and decoding in production also, so couldn't resist doing some benchmarks.
For the record, using here AMD Ryzen 9 7900 12-Core Processor and
v1.0.13.Versus flac 1.4.3 CLI:
I don't point this out to roast golang or this codebase, but it does look like there is a good possibility of tuning the performance?
One other data point with compression enabled via mewkiz/flac-tools PR #1