On 17/04/12 17:31, Andrei Alexandrescu wrote:
This would be great, but you'd need to show with benchmarks that the proposed
implementation does better than the extant one for most cases that matter.

OK, I've uploaded a prototype version in a GitHub repo:
git://github.com/WebDrake/RandomSample.git

This isn't a patch against Phobos, but a copy-paste and rename of the RandomSample struct/randomSample functions that lets me do some side-by-side comparison to current Phobos implementation. It does need a fully up-to-date DMD, druntime and Phobos to compile.

I've put in place a handful of very simple tests just to give an idea of some of the speed differences. The difference probably isn't so great for most trivial use-cases, but if you're doing a LOT of sampling, or you're sampling from a very large set of records, the difference becomes quite apparent.

I'm not sure what use-cases you have in mind for the benchmarks -- can you give me some idea, so I can go ahead and implement them?

Thanks and best wishes,

    -- Joe

Reply via email to