Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add directory for benchmarks #6

Open
wants to merge 7 commits into
base: item-caching
Choose a base branch
from

Conversation

TyOverby
Copy link
Contributor

@TyOverby TyOverby commented Aug 5, 2023

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
Copy link
Contributor Author

TyOverby commented Aug 6, 2023

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.

output.mp4

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)

output.1.mp4

Source Code

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

output.2.mp4

@let-def
Copy link
Owner

let-def commented Sep 18, 2023

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 :))

@TyOverby
Copy link
Contributor Author

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants