Giter VIP home page Giter VIP logo

Comments (4)

Bodigrim avatar Bodigrim commented on May 30, 2024 1

Yes, instance IsOption Mode. This allows to specify mode as a command line argument, but more importantly supports also fine-grained tuning via setOption: you likely want to measure wall time only for benchmarks of subprocesses, but not for anything else.

from tasty-bench.

amesgen avatar amesgen commented on May 30, 2024

I would be interested in adding a way to do this:

  • At which level should the flag exist? Cabal flag or a new field in Benchmarkable or sth else?
  • How to measure (monotonic) time? getMonotonicTimeNSec (only available since GHC 8.4), a new external library like clock or criterion-measurement, or custom FFI?

from tasty-bench.

Bodigrim avatar Bodigrim commented on May 30, 2024

This should be customizable on per-benchmark level, something akin to

data Mode = CpuTime | WallTime 
instance Options Mode where ...

For time measurement I'd use https://hackage.haskell.org/package/tasty-1.4.2.1/docs/Test-Tasty-Runners.html#v:getTime. Alternatively getMonotonicTimeNSec is probably also fine.

What's your motivation to work on this? Do you have a use case, where measuring CPU time is not sufficient?

from tasty-bench.

amesgen avatar amesgen commented on May 30, 2024

So make Mode a tasty option via IsOption? And thanks for the pointer to getTime in tasty, completely forgot that tasty also has to measure monotonic time.

Do you have a use case, where measuring CPU time is not sufficient?

Yes, I played around with sth where I have to call out to subprocesses (in my case, z3), and I want that to be part of the benchmarked time.

from tasty-bench.

Related Issues (20)

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.