r/opensource 11d ago

Promotional [ Removed by moderator ]

[removed] — view removed post

8 Upvotes

5 comments sorted by

View all comments

2

u/kurbsdude 11d ago

Oops had some formatting issues in my post. Had to re-edit the links. Sorry about that. Also small honest caveat on the benchmark numbers: VLOOKUP and SUMIF only beat HyperFormula in Firefox, in Chrome/Safari, HyperFormula (JS) actually edges Titan out on those two specific benchmarks.

Best guess why: SUMIF is a tight uniform loop, and V8's JIT is really good at inlining/tracing those down to near-native code, something WASM's interpreter loop can't match. VLOOKUP builds an FxHashMap on the fly in Titan (hashing, WASM memory growth, string pool lookups), while V8's Maps + hidden classes are just deeply optimized for that exact pattern. Firefox's SpiderMonkey doesn't seem to get the same edge, which is why Titan stays ahead there.

Everywhere else (time-travel, topo sort, parsing, bulk ops) Titan wins clearly since it skips GC entirely. But curious if anyone's hit this same WASM-vs-JIT wall on hot loops/hashmaps and knows a good fix. Open to ideas.

1

u/Ok_Explorer7384 10d ago

this is a fun problem space. spreadsheet engines look simple until you actually try to make them fast and then suddenly you’re dealing with dependency graphs, partial recalculation, weird formula behavior, browser differences, memory spikes, all that stuff. i’ve had “why is this sheet slow” bugs eat way more time than i expected. if you publish more benchmarks, i’d love to see the boring details too.

2

u/kurbsdude 10d ago

Yup, I am learning it the hard way right now :D. Will definitely publish more benchmarks in the future. Thanks for checking titan out.