#EvelixPy

10 messages ยท Page 1 of 1 (latest)

untold adder
#

-# Not sure if its entirely SolidJS, tho for the UI i do use SolidJS(SolidStart)

Brief Description

A benchmarking library for python. It runs your benchmarks and you can display them on the browser via benchmark.display() which opens up in the browser a page to preview stats about the benchmarks.

Features Made

  • ๐Ÿ’ป Benchmark Info Displays information about the enviorement, which includes the OS, RAM, CPU as well as the interperter used, the interperter's version, what major libraries are used, benchmarking configurations... etc
  • ๐Ÿ—’๏ธ Kernel Summaries You can preview the min/average/max runtime and min/average/max of memory usage per kernel (all of them take all of the iterations and samples in account)
  • **๐Ÿ“Š Plots / Graphs ** Visualize your data in plots, where the x axis is the number of iteration and the y axis measures either runtime or memory usage, these graphs can be toggled for logarithmic scale, they can be zoomed in, you can toggle them per benchmark case (best case/typical case/worst case)
  • โ˜€๏ธ Dark/Light Mode Toggle dark/light mode themes
  • **๐Ÿšซ Enabling/Disabling Kernels ** You can disable any unwanted kernels and view the ones you want to see
  • Sample Configuration You can increase/decrease the samples taken per iterations, more samples = better benchmark accurarcy

Planned Features

  • โ˜ฐ Callstack Analysis There will be a dedicated section to preview the callstack, where there will be information such as how much time calling this function took, how much memory it used, how many times it was called as well as in a tree form it will display the functions it calls. You can toggle the cases for best/typical/worst for runtime and memory usage

  • ๐Ÿ“ก Sharing Benchmarks Broadcast your benchmarks with the wider world, so other people can see them in full detail (you can make it password protected, disable hardware info... etc)

Any suggestions/contributions for features to add are welcome with wide open arms

#

also for anyone interested on the project, the techstack used:

  • Typescript (Frontend)
  • Apache ECharts (Frontend For Graphs)
  • DaisyUI (Frontend)
  • Tailwind CSS (Frontend)
  • SolidJS / Solid Start (Frontend)
  • Axum (Backend)
  • PyO3 (For Python)
#

rn the project is still underdeveloped

#

once im done with the graphs

#

i might release it as an alpha version

#

so people can help out, and plus you can view the development as well as il do the releases small and incrementally

#

also the usage is simple

#
import evelix

def test1():
    # ...

def test2():
    # ...

def my_setup():
    # ...

benchmarks = evelix.bench(
    [
        ("My First Test", test1),
        ("My Second Test", test2),
    ],
    setup=my_setup,
    display_progress=True,
    samples=5
)
benchmarks.display()
untold adder
#

DISCLAIMER

Before contributing to help, it is adviced you have some footprint on the server(at least a month or so), don't just come in as a fully new member, otherwise you will be rejected

#

i forgot to post this