wall icon indicating copy to clipboard operation
wall copied to clipboard

Add directory for benchmarks

Open TyOverby opened this issue 2 years ago • 3 comments

As I experiment with wall, I want to continue adding more benchmarks without cluttering the examples page, so I've built a small collection of benchmarks and a benchmark runner

TyOverby avatar Aug 05 '23 21:08 TyOverby

Many Graphs

This is just the many-graphs benchmark that I added to example.ml, but extracted to be a standalone example, and with some modifications to fill the whole screen when the application is resized.

https://github.com/let-def/wall/assets/573215/f89146c0-5822-4bfb-9b44-762039422735

Lots of Text

This is a port of a text-rendering benchmark that I built for a hobby project https://lux.graphics/ (click-and-drag to pan around, and use the scroll-wheel to zoom in and out)

https://github.com/let-def/wall/assets/573215/c3befa40-3661-482b-b4a8-0cd1c1a87e09

Source Code

This demo uses walls own source-code to demonstrate how the text-rendering ~placement parameter works

https://github.com/let-def/wall/assets/573215/9f4392a3-667f-4756-9fd5-9e669dc6696a

TyOverby avatar Aug 06 '23 16:08 TyOverby

Thank you very much. And sorry that I didn't look at it earlier, this will be very helpful.

From a performance perspective for text rendering, glyphs are cached but not the layout yet. This would be a natural extension of the current "item caching" branch.

(Fortunately, the text layout algorithm is very naive so this is not much of a problem for now :))

let-def avatar Sep 18 '23 00:09 let-def

When I profiled one of these (many-graphs I think), I found that the program spent ~20% of CPU time converting between 64-bit floats to 32-bit floats to store in the bigarray. This has me excited for Unboxed Types, and I think I'll be able to test Wall with a prototype compiler that supports unboxed 32-bit floats within the next month or two!

TyOverby avatar Sep 18 '23 02:09 TyOverby