Channels are implemented using locks, but "4x slower" is a meaningless microbenchmark number.
[1] http://www.jtolds.com/writing/2016/03/go-channels-are-bad-an...
The program was a financial model backtesting framework which I ended up rewriting in Rust because Go was simply too slow for what I wanted to do.