1 ------------------------------------------------------------------------
2 r39 | snappy.mirrorbot@gmail.com | 2011-06-02 20:06:54 +0200 (Thu, 02 Jun 2011) | 11 lines
4 Remove an unneeded goto in the decompressor; it turns out that the
5 state of ip_ after decompression (or attempted decompresion) is
6 completely irrelevant, so we don't need the trailer.
8 Performance is, as expected, mostly flat -- there's a curious ~3–5%
9 loss in the “lsp” test, but that test case is so short it is hard to say
10 anything definitive about why (most likely, it's some sort of
15 ------------------------------------------------------------------------
16 r38 | snappy.mirrorbot@gmail.com | 2011-06-02 19:59:40 +0200 (Thu, 02 Jun 2011) | 52 lines
18 Speed up decompression by caching ip_.
20 It is seemingly hard for the compiler to understand that ip_, the current input
21 pointer into the compressed data stream, can not alias on anything else, and
22 thus using it directly will incur memory traffic as it cannot be kept in a
23 register. The code already knew about this and cached it into a local
24 variable, but since Step() only decoded one tag, it had to move ip_ back into
25 place between every tag. This seems to have cost us a significant amount of
26 performance, so changing Step() into a function that decodes as much as it can
27 before it saves ip_ back and returns. (Note that Step() was already inlined,
28 so it is not the manual inlining that buys the performance here.)
30 The wins are about 3–6% for Core 2, 6–13% on Core i7 and 5–12% on Opteron
31 (for plain array-to-array decompression, in 64-bit opt mode).
33 There is a tiny difference in the behavior here; if an invalid literal is
34 encountered (ie., the writer refuses the Append() operation), ip_ will now
35 point to the byte past the tag byte, instead of where the literal was
36 originally thought to end. However, we don't use ip_ for anything after
37 DecompressAllTags() has returned, so this should not change external behavior
40 Microbenchmark results for Core i7, 64-bit (Opteron results are similar):
42 Benchmark Time(ns) CPU(ns) Iterations
43 ---------------------------------------------------
44 BM_UFlat/0 79134 79110 8835 1.2GB/s html [ +6.2%]
45 BM_UFlat/1 786126 786096 891 851.8MB/s urls [+10.0%]
46 BM_UFlat/2 9948 9948 69125 11.9GB/s jpg [ -1.3%]
47 BM_UFlat/3 31999 31998 21898 2.7GB/s pdf [ +6.5%]
48 BM_UFlat/4 318909 318829 2204 1.2GB/s html4 [ +6.5%]
49 BM_UFlat/5 31384 31390 22363 747.5MB/s cp [ +9.2%]
50 BM_UFlat/6 14037 14034 49858 757.7MB/s c [+10.6%]
51 BM_UFlat/7 4612 4612 151395 769.5MB/s lsp [ +9.5%]
52 BM_UFlat/8 1203174 1203007 582 816.3MB/s xls [+19.3%]
53 BM_UFlat/9 253869 253955 2757 571.1MB/s txt1 [+11.4%]
54 BM_UFlat/10 219292 219290 3194 544.4MB/s txt2 [+12.1%]
55 BM_UFlat/11 672135 672131 1000 605.5MB/s txt3 [+11.2%]
56 BM_UFlat/12 902512 902492 776 509.2MB/s txt4 [+12.5%]
57 BM_UFlat/13 372110 371998 1881 1.3GB/s bin [ +5.8%]
58 BM_UFlat/14 50407 50407 10000 723.5MB/s sum [+13.5%]
59 BM_UFlat/15 5699 5701 100000 707.2MB/s man [+12.4%]
60 BM_UFlat/16 83448 83424 8383 1.3GB/s pb [ +5.7%]
61 BM_UFlat/17 256958 256963 2723 684.1MB/s gaviota [ +7.9%]
62 BM_UValidate/0 42795 42796 16351 2.2GB/s html [+25.8%]
63 BM_UValidate/1 490672 490622 1427 1.3GB/s urls [+22.7%]
64 BM_UValidate/2 237 237 2950297 499.0GB/s jpg [+24.9%]
65 BM_UValidate/3 14610 14611 47901 6.0GB/s pdf [+26.8%]
66 BM_UValidate/4 171973 171990 4071 2.2GB/s html4 [+25.7%]
70 ------------------------------------------------------------------------
71 r37 | snappy.mirrorbot@gmail.com | 2011-05-17 10:48:25 +0200 (Tue, 17 May 2011) | 10 lines
74 Fix the numbering of the headlines in the Snappy format description.
77 DELTA=4 (0 added, 0 deleted, 4 changed)
80 Revision created by MOE tool push_codebase.
83 ------------------------------------------------------------------------
84 r36 | snappy.mirrorbot@gmail.com | 2011-05-16 10:59:18 +0200 (Mon, 16 May 2011) | 12 lines
87 Fix public issue #32: Add compressed format documentation for Snappy.
88 This text is new, but an earlier version from Zeev Tarantov was used
92 DELTA=112 (111 added, 0 deleted, 1 changed)
95 Revision created by MOE tool push_codebase.
98 ------------------------------------------------------------------------
99 r35 | snappy.mirrorbot@gmail.com | 2011-05-09 23:29:02 +0200 (Mon, 09 May 2011) | 12 lines
102 Fix public issue #39: Pick out the median runs based on CPU time,
103 not real time. Also, use nth_element instead of sort, since we
104 only need one element.
107 DELTA=5 (3 added, 0 deleted, 2 changed)
110 Revision created by MOE tool push_codebase.
113 ------------------------------------------------------------------------
114 r34 | snappy.mirrorbot@gmail.com | 2011-05-09 23:28:45 +0200 (Mon, 09 May 2011) | 19 lines
117 Fix public issue #38: Make the microbenchmark framework handle
118 properly cases where gettimeofday() can stand return the same
119 result twice (as sometimes on GNU/Hurd) or go backwards
120 (as when the user adjusts the clock). We avoid a division-by-zero,
121 and put a lower bound on the number of iterations -- the same
122 amount as we use to calibrate.
124 We should probably use CLOCK_MONOTONIC for platforms that support
125 it, to be robust against clock adjustments; we already use Windows'
126 monotonic timers. However, that's for a later changelist.
129 DELTA=7 (5 added, 0 deleted, 2 changed)
132 Revision created by MOE tool push_codebase.
135 ------------------------------------------------------------------------
136 r33 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:52 +0200 (Wed, 04 May 2011) | 11 lines
139 Fix public issue #37: Only link snappy_unittest against -lz and other autodetected
140 libraries, not libsnappy.so (which doesn't need any such dependency).
143 DELTA=20 (14 added, 0 deleted, 6 changed)
146 Revision created by MOE tool push_codebase.
149 ------------------------------------------------------------------------
150 r32 | snappy.mirrorbot@gmail.com | 2011-05-04 01:22:33 +0200 (Wed, 04 May 2011) | 11 lines
153 Release Snappy 1.0.2, to get the license change and various other fixes into
157 DELTA=239 (236 added, 0 deleted, 3 changed)
160 Revision created by MOE tool push_codebase.
163 ------------------------------------------------------------------------
164 r31 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:55 +0200 (Tue, 26 Apr 2011) | 15 lines
167 Fix public issue #30: Stop using gettimeofday() altogether on Win32,
168 as MSVC doesn't include it. Replace with QueryPerformanceCounter(),
169 which is monotonic and probably reasonably high-resolution.
170 (Some machines have traditionally had bugs in QPC, but they should
171 be relatively rare these days, and there's really no much better
172 alternative that I know of.)
175 DELTA=74 (55 added, 19 deleted, 0 changed)
178 Revision created by MOE tool push_codebase.
181 ------------------------------------------------------------------------
182 r30 | snappy.mirrorbot@gmail.com | 2011-04-26 14:34:37 +0200 (Tue, 26 Apr 2011) | 11 lines
185 Fix public issue #31: Don't reset PATH in autogen.sh; instead, do the trickery
186 we need for our own build system internally.
189 DELTA=16 (13 added, 1 deleted, 2 changed)
192 Revision created by MOE tool push_codebase.
195 ------------------------------------------------------------------------
196 r29 | snappy.mirrorbot@gmail.com | 2011-04-16 00:55:56 +0200 (Sat, 16 Apr 2011) | 12 lines
199 When including <windows.h>, define WIN32_LEAN_AND_MEAN first,
200 so we won't pull in macro definitions of things like min() and max(),
201 which can conflict with <algorithm>.
204 DELTA=1 (1 added, 0 deleted, 0 changed)
207 Revision created by MOE tool push_codebase.
210 ------------------------------------------------------------------------
211 r28 | snappy.mirrorbot@gmail.com | 2011-04-11 11:07:01 +0200 (Mon, 11 Apr 2011) | 15 lines
214 Fix public issue #29: Write CPU timing code for Windows, based on GetProcessTimes()
215 instead of getursage().
217 I thought I'd already committed this patch, so that the 1.0.1 release already
218 would have a Windows-compatible snappy_unittest, but I'd seemingly deleted it
219 instead, so this is a reconstruction.
222 DELTA=43 (39 added, 3 deleted, 1 changed)
225 Revision created by MOE tool push_codebase.
228 ------------------------------------------------------------------------
229 r27 | snappy.mirrorbot@gmail.com | 2011-04-08 11:51:53 +0200 (Fri, 08 Apr 2011) | 22 lines
232 Include C bindings of Snappy, contributed by Martin Gieseking.
234 I've made a few changes since Martin's version; mostly style nits, but also
235 a semantic change -- most functions that return bool in the C++ version now
236 return an enum, to better match typical C (and zlib) semantics.
238 I've kept the copyright notice, since Martin is obviously the author here;
239 he has signed the contributor license agreement, though, so this should not
240 hinder Google's use in the future.
242 We'll need to update the libtool version number to match the added interface,
243 but as of http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
244 I'm going to wait until public release.
247 DELTA=238 (233 added, 0 deleted, 5 changed)
250 Revision created by MOE tool push_codebase.
253 ------------------------------------------------------------------------
254 r26 | snappy.mirrorbot@gmail.com | 2011-04-07 18:36:43 +0200 (Thu, 07 Apr 2011) | 13 lines
257 Replace geo.protodata with a newer version.
259 The data compresses/decompresses slightly faster than the old data, and has
263 DELTA=1 (0 added, 0 deleted, 1 changed)
266 Revision created by MOE tool push_codebase.
269 ------------------------------------------------------------------------
270 r25 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:53 +0200 (Wed, 30 Mar 2011) | 12 lines
273 Fix public issue #27: Add HAVE_CONFIG_H tests around the config.h
274 inclusion in snappy-stubs-internal.h, which eases compiling outside the
275 automake/autoconf framework.
278 DELTA=5 (4 added, 1 deleted, 0 changed)
281 Revision created by MOE tool push_codebase.
284 ------------------------------------------------------------------------
285 r24 | snappy.mirrorbot@gmail.com | 2011-03-30 22:27:39 +0200 (Wed, 30 Mar 2011) | 13 lines
288 Fix public issue #26: Take memory allocation and reallocation entirely out of the
289 Measure() loop. This gives all algorithms a small speed boost, except Snappy which
290 already didn't do reallocation (so the measurements were slightly biased in its
294 DELTA=92 (69 added, 9 deleted, 14 changed)
297 Revision created by MOE tool push_codebase.
300 ------------------------------------------------------------------------
301 r23 | snappy.mirrorbot@gmail.com | 2011-03-30 22:25:09 +0200 (Wed, 30 Mar 2011) | 18 lines
304 Renamed "namespace zippy" to "namespace snappy" to reduce
305 the differences from the opensource code. Will make it easier
306 in the future to mix-and-match third-party code that uses
307 snappy with google code.
309 Currently, csearch shows that the only external user of
310 "namespace zippy" is some bigtable code that accesses
311 a TEST variable, which is temporarily kept in the zippy
315 DELTA=123 (18 added, 3 deleted, 102 changed)
318 Revision created by MOE tool push_codebase.
321 ------------------------------------------------------------------------
322 r22 | snappy.mirrorbot@gmail.com | 2011-03-29 00:17:04 +0200 (Tue, 29 Mar 2011) | 11 lines
325 Put back the final few lines of what was truncated during the
326 license header change.
329 DELTA=5 (4 added, 0 deleted, 1 changed)
332 Revision created by MOE tool push_codebase.
335 ------------------------------------------------------------------------
336 r21 | snappy.mirrorbot@gmail.com | 2011-03-26 03:34:34 +0100 (Sat, 26 Mar 2011) | 20 lines
339 Change on 2011-03-25 19:18:00-07:00 by sesse
341 Replace the Apache 2.0 license header by the BSD-type license header;
342 somehow a lot of the files were missed in the last round.
345 DELTA=147 (74 added, 2 deleted, 71 changed)
347 Change on 2011-03-25 19:25:07-07:00 by sesse
349 Unbreak the build; the relicensing removed a bit too much (only comments
350 were intended, but I also accidentially removed some of the top lines of
355 Revision created by MOE tool push_codebase.
358 ------------------------------------------------------------------------
359 r20 | snappy.mirrorbot@gmail.com | 2011-03-25 17:14:41 +0100 (Fri, 25 Mar 2011) | 10 lines
362 Change Snappy from the Apache 2.0 to a BSD-type license.
365 DELTA=328 (80 added, 184 deleted, 64 changed)
368 Revision created by MOE tool push_codebase.
371 ------------------------------------------------------------------------
372 r19 | snappy.mirrorbot@gmail.com | 2011-03-25 01:39:01 +0100 (Fri, 25 Mar 2011) | 11 lines
375 Release Snappy 1.0.1, to soup up all the various small changes
376 that have been made since release.
379 DELTA=266 (260 added, 0 deleted, 6 changed)
382 Revision created by MOE tool push_codebase.
385 ------------------------------------------------------------------------
386 r18 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:54 +0100 (Thu, 24 Mar 2011) | 11 lines
389 Fix a microbenchmark crash on mingw32; seemingly %lld is not universally
390 supported on Windows, and %I64d is recommended instead.
393 DELTA=6 (5 added, 0 deleted, 1 changed)
396 Revision created by MOE tool push_codebase.
399 ------------------------------------------------------------------------
400 r17 | snappy.mirrorbot@gmail.com | 2011-03-24 20:15:27 +0100 (Thu, 24 Mar 2011) | 13 lines
403 Fix public issue #19: Fix unit test when Google Test is installed but the
404 gflags package isn't (Google Test is not properly initialized).
406 Patch by Martin Gieseking.
409 DELTA=2 (1 added, 0 deleted, 1 changed)
412 Revision created by MOE tool push_codebase.
415 ------------------------------------------------------------------------
416 r16 | snappy.mirrorbot@gmail.com | 2011-03-24 20:13:57 +0100 (Thu, 24 Mar 2011) | 15 lines
419 Make the unit test work on systems without mmap(). This is required for,
420 among others, Windows support. For Windows in specific, we could have used
421 CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer
422 to compiling, and is of course also relevant for embedded systems with no MMU.
427 DELTA=15 (12 added, 3 deleted, 0 changed)
430 Revision created by MOE tool push_codebase.
433 ------------------------------------------------------------------------
434 r15 | snappy.mirrorbot@gmail.com | 2011-03-24 20:12:27 +0100 (Thu, 24 Mar 2011) | 15 lines
437 Make the unit test work on systems without mmap(). This is required for,
438 among others, Windows support. For Windows in specific, we could have used
439 CreateFileMapping/MapViewOfFile, but this should at least get us a bit closer
440 to compiling, and is of course also relevant for embedded systems with no MMU.
445 DELTA=9 (8 added, 0 deleted, 1 changed)
448 Revision created by MOE tool push_codebase.
451 ------------------------------------------------------------------------
452 r14 | snappy.mirrorbot@gmail.com | 2011-03-24 00:17:36 +0100 (Thu, 24 Mar 2011) | 14 lines
455 Fix public issue #12: Don't keep autogenerated auto* files in Subversion;
456 it causes problems with others sending patches etc..
458 We can't get this 100% hermetic anyhow, due to files like lt~obsolete.m4,
459 so we can just as well go cleanly in the other direction.
462 DELTA=21038 (0 added, 21036 deleted, 2 changed)
465 Revision created by MOE tool push_codebase.
468 ------------------------------------------------------------------------
469 r13 | snappy.mirrorbot@gmail.com | 2011-03-23 18:50:49 +0100 (Wed, 23 Mar 2011) | 11 lines
472 Fix public issue tracker bug #3: Call AC_SUBST([LIBTOOL_DEPS]), or the rule
473 to rebuild libtool in Makefile.am won't work.
476 DELTA=1 (1 added, 0 deleted, 0 changed)
479 Revision created by MOE tool push_codebase.
482 ------------------------------------------------------------------------
483 r12 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:39 +0100 (Wed, 23 Mar 2011) | 11 lines
486 Fix public issue #10: Don't add GTEST_CPPFLAGS to snappy_unittest_CXXFLAGS;
487 it's not needed (CPPFLAGS are always included when compiling).
490 DELTA=1 (0 added, 1 deleted, 0 changed)
493 Revision created by MOE tool push_codebase.
496 ------------------------------------------------------------------------
497 r11 | snappy.mirrorbot@gmail.com | 2011-03-23 12:16:18 +0100 (Wed, 23 Mar 2011) | 11 lines
500 Fix public issue #9: Add -Wall -Werror to automake flags.
501 (This concerns automake itself, not the C++ compiler.)
504 DELTA=4 (3 added, 0 deleted, 1 changed)
507 Revision created by MOE tool push_codebase.
510 ------------------------------------------------------------------------
511 r10 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:37 +0100 (Wed, 23 Mar 2011) | 10 lines
514 Fix a typo in the Snappy README file.
517 DELTA=1 (0 added, 0 deleted, 1 changed)
520 Revision created by MOE tool push_codebase.
523 ------------------------------------------------------------------------
524 r9 | snappy.mirrorbot@gmail.com | 2011-03-23 12:13:13 +0100 (Wed, 23 Mar 2011) | 11 lines
527 Fix public issue #6: Add a --with-gflags for disabling gflags autodetection
528 and using a manually given setting (use/don't use) instead.
531 DELTA=16 (13 added, 0 deleted, 3 changed)
534 Revision created by MOE tool push_codebase.
537 ------------------------------------------------------------------------
538 r8 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:44 +0100 (Wed, 23 Mar 2011) | 12 lines
541 Fix public issue #5: Replace the EXTRA_LIBSNAPPY_LDFLAGS setup with something
542 slightly more standard, that also doesn't leak libtool command-line into
546 DELTA=7 (0 added, 4 deleted, 3 changed)
549 Revision created by MOE tool push_codebase.
552 ------------------------------------------------------------------------
553 r7 | snappy.mirrorbot@gmail.com | 2011-03-23 12:12:22 +0100 (Wed, 23 Mar 2011) | 10 lines
556 Fix public issue #4: Properly quote all macro arguments in configure.ac.
559 DELTA=16 (0 added, 0 deleted, 16 changed)
562 Revision created by MOE tool push_codebase.
565 ------------------------------------------------------------------------
566 r6 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:54 +0100 (Wed, 23 Mar 2011) | 11 lines
569 Fix public issue #7: Don't use internal variables named ac_*, as those belong
570 to autoconf's namespace.
573 DELTA=6 (0 added, 0 deleted, 6 changed)
576 Revision created by MOE tool push_codebase.
579 ------------------------------------------------------------------------
580 r5 | snappy.mirrorbot@gmail.com | 2011-03-23 12:11:09 +0100 (Wed, 23 Mar 2011) | 10 lines
583 Add missing licensing headers to a few files. (Part 2/2.)
586 DELTA=12 (12 added, 0 deleted, 0 changed)
589 Revision created by MOE tool push_codebase.
592 ------------------------------------------------------------------------
593 r4 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:39 +0100 (Wed, 23 Mar 2011) | 10 lines
596 Add mising licensing headers to a few files. (Part 1/2.)
599 DELTA=24 (24 added, 0 deleted, 0 changed)
602 Revision created by MOE tool push_codebase.
605 ------------------------------------------------------------------------
606 r3 | snappy.mirrorbot@gmail.com | 2011-03-23 12:10:04 +0100 (Wed, 23 Mar 2011) | 11 lines
609 Use the correct license file for the Apache 2.0 license;
610 spotted by Florian Weimer.
613 DELTA=202 (174 added, 0 deleted, 28 changed)
616 Revision created by MOE tool push_codebase.
619 ------------------------------------------------------------------------
620 r2 | snappy.mirrorbot@gmail.com | 2011-03-18 18:14:15 +0100 (Fri, 18 Mar 2011) | 6 lines
625 Revision created by MOE tool push_codebase.
628 ------------------------------------------------------------------------
629 r1 | sesse@google.com | 2011-03-18 18:13:52 +0100 (Fri, 18 Mar 2011) | 2 lines
631 Create trunk directory.
633 ------------------------------------------------------------------------