Page MenuHomeFreeBSD

Prototype of replacing bsdiff's qsufsort with Yuta Mori's libdivsufsort.
AbandonedPublic

Authored by delphij on May 25 2016, 7:45 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 29 2024, 8:52 PM
Unknown Object (File)
Dec 20 2023, 1:00 AM
Unknown Object (File)
Dec 11 2023, 11:14 AM
Unknown Object (File)
Dec 9 2023, 3:49 PM
Unknown Object (File)
Nov 25 2023, 4:23 PM
Unknown Object (File)
Sep 21 2023, 6:15 PM
Unknown Object (File)
Aug 11 2023, 5:25 PM
Unknown Object (File)
Jul 4 2023, 12:56 AM
Subscribers

Details

Reviewers
cperciva
Summary

This is a preliminary proof-of-concept implementation of bsdiff
using libdivsufsort instead of qsufsort. (if we consider this
as the right direction I'll import the code into vendor area
instead).

My test shows this would offer a 36% speed up for generating
patch.

Ported from Chromium: https://chromium-review.googlesource.com/#/c/1080/

x before
+ after
+------------------------------------------------------------+

+ x
+ x
+ x
++ xx
AA

+------------------------------------------------------------+

N           Min           Max        Median           Avg        Stddev

x 5 8.56 8.6 8.58 8.584 0.016733201
+ 5 5.41 5.44 5.43 5.426 0.011401754
Difference at 95.0% confidence
-3.158 +/- 0.0208817
-36.7894% +/- 0.243263%
(Student's t, pooled s = 0.0143178)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 3944
Build 3987: arc lint + arc unit

Event Timeline

delphij retitled this revision from to Prototype of replacing bsdiff's qsufsort with Yuta Mori's libdivsufsort..
delphij updated this object.
delphij edited the test plan for this revision. (Show Details)
delphij added a reviewer: cperciva.

library code taken from https://github.com/y-256/libdivsufsort; bsdiff change adapted from Chromium source.

usr.bin/bsdiff/bsdiff/config.h
1

Generated with -DCMAKE_BUILD_TYPE="Release" -DBUILD_DIVSUFSORT64=ON

usr.bin/bsdiff/bsdiff/divsufsort.c
1

vendor code unchanged.

usr.bin/bsdiff/bsdiff/divsufsort64.h
1

Generated file.

usr.bin/bsdiff/bsdiff/divsufsort_private.h
1

Vendor file.

usr.bin/bsdiff/bsdiff/sssort.c
1

Vendor file.

usr.bin/bsdiff/bsdiff/trsort.c
1

Vendor file.

usr.bin/bsdiff/bsdiff/utils.c
1

Vendor file.

The change was merged as rS303285.