Git Product home page Git Product logo

walkbench's Introduction

walkbench

A tiny throwaway benchmarking tool to quickly compare Rust's ignore and walkdir crates with Ruby's native Find and my fast_find gem.

My use-case for this is walking CVS trees to find updated files for the FreshBSD backend to process, so that's what I tested with.

ignore and fast_find are both multi-threaded, while walkdir and Find are both sequential.

Results

FreeBSD 12.0-RELEASE, 11.2-RELEASE jail environment (due to ongoing JRuby stat breakage on 12), JRuby 9.2.5.0, on a 24-way Xeon L5639 with mirrored SSDs on ZFS and huge gobs of RAM.

-% find /cvs/openbsd -mtime +0 |wc -l
  377634
5.866 real, 0.520 user, 5.346 sys

-% target/release/walkbench /cvs/openbsd
 ignore: 6.83s 6.63s 6.25s 6.52s 8.31s [avg best 4: 6.56s]
walkdir: 9.13s 9.13s 9.10s 9.13s 9.11s [avg best 4: 9.12s]
1:20.14 real, 14.339 user, 1:40.24 sys

-% ruby walkbench.rb /cvs/openbsd
    Find: 24.68s 23.42s 22.99s 22.89s 22.87s [ avg best 4: 23.04s ]
FastFind:  4.11s  4s     3.74s  3.46s  3.77s [ avg best 4:  3.74s ]
2:19.95 real, 1:44.57 user, 3:22.52 sys

-% rbenv local 2.5.3
-% ruby walkbench.rb /cvs/openbsd
    Find: 13.23s 13.29s 13.17s 13.17s 13.22s [ avg best 4: 13.2s ]
FastFind: 16.43s 15.34s 16.1s  15.4s  15.8s  [ avg best 4: 15.66s ]
2:25.34 real, 1:11.90 user, 1:47.09 sys

(Manually aligned for readability)

walkbench's People

Contributors

freaky avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.