- From: James M Snell <jasnell@gmail.com>
- Date: Thu, 11 Apr 2013 11:05:40 -0700
- To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
FYI... compression-test suite integration is done... still have lots of testing and fine tuning of the overall implementation to do, but it's now possible to run this through the compression-test toolset. Just pull the code from github and run the maven build, then from the compression-test directory, do... ./compare_compressors.py -c fork="{path_to_code}/http2/compression_test.sh" -c delta2 \ ../http_samples/mnot/craigslist.org.har where {path_to_code} is the full path to the java code... * TOTAL: 33 req messages size time | ratio min max std http1 13,389 0.00 | 1.00 1.00 1.00 0.00 fork (/Users/james/Workspaces/specs/http2/compression_test.sh) 2,489 0.01 | 0.19 0.07 0.75 0.11 delta2 1,812 0.04 | 0.14 0.05 0.61 0.10 * TOTAL: 33 res messages size time | ratio min max std http1 10,363 0.00 | 1.00 1.00 1.00 0.00 fork (/Users/james/Workspaces/specs/http2/compression_test.sh) 1,656 0.00 | 0.16 0.07 0.54 0.11 delta2 2,452 0.02 | 0.24 0.06 0.55 0.10 On Tue, Apr 9, 2013 at 10:24 AM, James M Snell <jasnell@gmail.com> wrote: > I have updated my experimental Delta+Bohe java implementation to match > the current draft of the specification and Roberto's current delta > iteration. I still have to patch this in to the compression-test stuff > but the code is functional. > > https://github.com/jasnell/http2 > > Requires maven to build. Dependencies are light. Still needs a ton of > work and I have not even started working on performance optimizations. > It's a pretty straight forward port of everything Roberto has done in > the python impl. > > The one bit this does add is multi-type header values. The types > supported are String, Number, Datetime and Binary. Strings can be > either UTF-8 or ISO-8859-1. If they are ISO-8859-1, they can be > Huffman coded using Roberto's static code. I am using an different > static dictionary of predefined header values tho. > > General takeaways .. > > 1. The implementation is not that difficult to do and seems to perform > reasonably well. > 2. The additional types are very useful and add minimal additional > complexity to the implementation. > 3. I'm generally not convinced that we really need the huffman coding. > Yes, it saves a handful of bytes here and there but it does add > additional complexity. I can live with it tho. If we keep it and we > decide to allow for UTF8 header values, then we need to come up with a > static huffman coding that includes the extended UTF8 character > support. > 4. Performance seems reasonable overall. > > I'm going to be working on implementing HeaderDiff next. Hopefully > I'll have the time to have that done by this Friday. > > - James
Received on Thursday, 11 April 2013 18:06:28 UTC