From dbce42408cd172411d094593367fe598296f9321 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 23 Jan 2023 21:30:47 -0500 Subject: Update some numbers --- implementation/perf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'implementation/perf.md') diff --git a/implementation/perf.md b/implementation/perf.md index 760aab6d..3fd415f8 100644 --- a/implementation/perf.md +++ b/implementation/perf.md @@ -4,7 +4,7 @@ How fast is the performance-oriented BQN implementation, [CBQN](https://github.com/dzaima/CBQN)? I must ask, why do you care? People are out there looking for the fastest array language before they've tried any one to see if it works for them. Fact is, most programs have a point where they are just fast enough, and CPUs have gotten pretty good at reaching that point. Or maybe there's a concentrated slow part that's easily handed off to a specialized tool like LAPACK. No matter what, a laser focus on performance from the beginning will cause you to miss the fast solutions you'd find if you really understood the problem. So, start with clean code in the most expressive language to work out strategy, and move to tactics once you know when and how the performance falls short. Without this understanding, benchmarks are just a dick measuring contest. It's not even your own dick. It's public, you're just using it. -Anyway, BQN's dick is pretty fast. Compiles its own compiler in 3ms. Builds this whole site—a megabyte or so of markdown—in a second and a half. Lists the primes under a billion in two seconds. That sort of thing. For CBQN right now, performance splits into three major cases: +Anyway, BQN's dick is pretty fast. Compiles its own compiler in 2ms. Builds this whole site—a megabyte or so of markdown—in a second and a half. Lists the primes under a billion in two seconds. That sort of thing. For CBQN right now, performance splits into three major cases: - Scalar code, mostly using atoms. CBQN is faster than other array languages and on par with lightweight interpreters (not JIT compilers). - Flat lists, particularly integers and characters. CBQN rarely loses to other array languages, and can beat idiomatic C. - Multidimensional arrays. CBQN has less optimization, and sometimes falls back to the self-hosted runtime which has implementations using a lot of scalar code. These can be slow, but not pathologically so. -- cgit v1.2.3