The socket client was starting a thread that tight looped to remove item...

...s from a queue. Each iteration of the loop where the queue was empty (most iterations) threw an exception creating massive amounts of GC garbage. This code was also not threadsafe, so locks were added.
@adrianUken nice catch. I'll also look into why this formatting is so wonky ...