Need a Faster Compressor

Era Scarecrow via Digitalmars-d digitalmars-d at puremagic.com
Sun May 22 10:21:56 PDT 2016


On Sunday, 22 May 2016 at 16:06:07 UTC, Marco Leise wrote:
> There are a few open questions, for me at least. Are there 
> other proposals with good properties? Are there any objections 
> against the benchmarking method or the license? Can the 
> implementation be in D? If not, should we link against the 
> system liblz4.so/a or copy the C code into the backend? Is a 
> pre-filled dictionary worthwhile? If so, which words should go 
> in it? The latter is important because changes to the Dlang 
> mangling need to be reflected in other projects outside our 
> direct control, too.

How it's being benchmarked does make me question it a bit. I 
avoided doing multi-threading so my results are as they would run 
on 1 CPU/Core, while adding multi-threading probably isn't too 
hard to do (at least in D). Then there's the wonder of how many 
cores, and other details. A compressor designed to run in 
parallel will naturally be in it's own element there. This of 
course assumes we are allowed to in the first place; The compiler 
may already be using those cores for other tasks: Scanning other 
files, optimizing code, CTFE, etc, to which point speed gained in 
compression may not actually translate to an overall speedup if 
you are stealing CPU cycles.

  As for a dictionary and being primed, I'm trying to figure out 
what would be in it myself. Commonly used templates and keywords 
that appear in symbols are so far my best guess. I'd avoid 
library names unless they'd appear in the symbols (so 'std.core' 
might not mean much, while 'unittestL' does). Then again I don't 
have a good sample of what I'd actually encounter live, maybe 
every major library import would be good thing to have.


More information about the Digitalmars-d mailing list