wall
wall copied to clipboard
Add directory for benchmarks
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
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
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 :))
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!