Even with Text.Show.ByteString, which is supposed to avoid unnecessary string conversions, performance does not improve.
 

Date: Mon, 27 Aug 2012 20:05:19 -0700
Subject: Re: I/O overhead in opening and writing files
From: bos@serpentine.com
To: arc38813@hotmail.com
CC: johan.tibell@gmail.com; glasgow-haskell-users@haskell.org

On Mon, Aug 27, 2012 at 3:25 PM, J Baptist <arc38813@hotmail.com> wrote:
The problem may be that even with ByteStrings, we are stuck using show, and thus Strings, at some point.

Wait, what are you actually trying to do? If you have a benchmark that's half sane and half bonkers (cf. use of show), then yeah, it's not going to do so well.