title: Suggestions for compression library to get byte[] as small as possible without considering cpu expense?
body: <p>Correct me if I'm approaching this wrong, but I have a queue server and a bunch of java workers that I'm running on in a cluster. My queue has work units that are very small but there are many of them. So far my benchmarks and review of the workers has shown that I get about 200mb/second.</p>
  
  <p>So I'm trying to figure out how to get more work units via my bandwidth.  Currently my CPU usage is not very high(40-50%) because it can process the data faster than the network can send it. I want to get more work through the queue and am willing to pay for it via expensive compression/decompression(since half of each core is idle right now).</p>
  
  <p>I have tried java LZO and gzip, but was wondering if there was anything better(even if its more cpu expensive)?</p>
  
  <p>Updated: data is a byte[]. Basically the queue only takes it in that format so I am using <code>ByteArrayOutputStream</code> to write two ints and a int[] to to a byte[] format. The values in int[] are all ints between 0 to 100(or 1000 but the vast majority of the numbers are zeros). The lists are quite large anywhere from 1000 to 10,000 items(again, majority zeros..never more than 100 non-zero numbers in the int[])</p>