Skip to content

Latest commit

 

History

History
44 lines (42 loc) · 2.51 KB

TODO.md

File metadata and controls

44 lines (42 loc) · 2.51 KB

Ideas / Plans / Wishlist

  • formatting fn=name dur=25sec
    • allow for custom formatting
  • add possibility to happen only during debug mode, not release
  • allow hooks |name, duration| {} to be inserted
  • idea for a new crate: can have a global state (for testing maybe) that tracks / tests / counts how many times something was called and assert during tests

Chrome tracing

  • add documentation show how to use chrome://tracing
  • add CI
  • profile this, with and without to see perf impact, async and multithreading
  • add save to file
  • add tags to functions, to group them together
  • also do this for blocks (for example to want to know how long you're spending in a for loop, or in allocation, or etc)
  • show stats to give you some sort of state of what should you really optimize for in your function, to keep accumulating the seconds for that given tag / function
  • blog post about tracing
  • add name override to function, sometimes "new" is not very useful
  • remove all unwraps, hardcode the function name, don't put it in format! both in tracing and in duration
  • add example repo, add gifs
  • ask for help to write a few more idiomatic examples where this would be useful
  • add thread and pid and enrich with what else chrome::tracing allows you to
  • ask for help for taking a closure as argument to remove the warning and possibly making it cleaner

Done

  • ask for help to write the stats
  • Add the module path to the name of a function like "foo::bar::baz()" in tracing
  • allow disable duration to keep tracing only.
  • init/main function is not captured during tracing, perhaps try a different type of init
  • tracing print with "printer"
  • Keep accumulating in a global state
  • [no longer] use timed::dump/flush on stdout/file when useful
  • Add and test async
  • Use syn, remove manual parser
  • Attribute to macro such as log level if needed:
    • macro/function to call when timing such as "info", "println", "lambda"
  • inspect https://github.com/gustavla/timeit/pulls see how to combine
  • add timed macro for blocks
    • timeit does it many times (looks like already done)
    • this is just for profiling
  • write another wrapper for info! that dumps to chrome::tracing as well - will combine with tracing
  • add possibility to print start, end
    • eventually generate flamegraph out of it
    • or (vertical) timegraph with overlaps
    • use chrome::tracing (need to generate a new file or print to stdout)