Best of PerformanceApril 2026

  1. 1
    Article
    Avatar of bunBun·6w

    Bun v1.3.12

    Bun v1.3.12 ships with a large set of new features and bugfixes. Highlights include native headless browser automation via Bun.WebView (WebKit and Chrome backends), terminal Markdown rendering with `bun ./file.md`, an in-process Bun.cron() scheduler, async stack traces for native errors, 2.3x faster URLPattern, 2x faster Bun.Glob.scan, cgroup-aware parallelism on Linux, TCP_DEFER_ACCEPT for Bun.serve(), HTTPS proxy CONNECT tunnel reuse, SIMD-optimized ANSI string utilities, upgraded JavaScriptCore engine with explicit resource management support, and over 120 bug fixes covering Node.js compatibility, memory leaks, crashes, and security issues.

  2. 2
    Article
    Avatar of allthingssmittyMatt Smith·5w

    Why I don't chain everything in JavaScript anymore

    Method chaining in JavaScript looks clean but can hurt readability, hide unnecessary work, and make debugging harder. Breaking long chains into named intermediate steps makes code easier to read, debug, and reason about. A practical rule: chains of 1-2 steps are fine, 3-4 steps warrant a pause, and 5+ steps should almost always be split up. The same principle applies to async promise chains, where mixing control flow with data transformation in one chain adds cognitive overhead.

  3. 3
    Video
    Avatar of lowlevelgamedevLow Level Game Dev·6w

    Worst C++ beginner mistake. Stop optimizing your code!

    A beginner-focused guide arguing against premature optimization in C++. Using a game resource analogy and a Minecraft clone example, it demonstrates that optimizing before measuring is wasteful and often harmful. Key points include: only optimize when you have a measured performance problem, micro-optimizations like pass-by-value vs const-reference are usually irrelevant because the compiler handles them, and distinguishing between performance (how fast code runs) and efficiency (how well resources are used). The core advice is to keep code simple, correct, and easy to extend rather than chasing theoretical performance gains.

  4. 4
    Article
    Avatar of faunFaun·6w

    Async Logging Is Not a Silver Bullet — What Actually Limits Performance

    Async logging is commonly assumed to make logging cheaper, but it only redistributes the cost rather than eliminating it. The real pipeline includes a capture step (copying or serializing data) before enqueuing, which is required for correctness due to data lifetime issues with deferred formatting. Formatting often dominates logging cost, and moving it to a background thread doesn't make it faster. A single backend thread creates a hard throughput ceiling, and queues only delay when overload becomes visible. An alternative approach — optimizing formatting on the caller thread and only offloading I/O asynchronously — avoids lifetime issues, reduces copying, and produces more predictable behavior.

  5. 5
    Article
    Avatar of phoronixPhoronix·7w

    Redox OS Introducing New CPU Scheduler For ~1.5x Performance In Heavy Tasks

    Redox OS is introducing a new Deficit Weighted Round Robin (DWRR) CPU scheduler to replace its legacy Round Robin scheduler, developed as part of Redox Summer of Code. The new scheduler delivers approximately 1.5x improvement in operations per second for CPU-bound tasks, a ~15% gain in interactive responsiveness through priority boosting for interactive workloads, and a ~48% increase in scheduling throughput. Wakeup latencies and context switching times also dropped significantly.

  6. 6
    Article
    Avatar of collectionsCollections·4w

    TypeScript 7.0 beta: the Go rewrite is here

    TypeScript 7.0 beta is available, featuring a compiler rewritten in Go. The native rewrite delivers roughly 10x faster build times over TypeScript 6.0 by eliminating V8 startup overhead and enabling shared-memory parallelism for parsing, type-checking, and emitting. Two new flags, `--checkers` and `--builders`, control parallel workers. Type-checking semantics remain identical to 6.0. Breaking changes include removal of `target: es5`, `moduleResolution: node`, AMD/UMD/SystemJS, and `baseUrl`, with strict mode now on by default. The programmatic API is deferred to 7.1, meaning build tool integrations must wait. Bloomberg, Vercel, and VoidZero are reportedly already running it in production. Stable release is expected within two months.

  7. 7
    Article
    Avatar of phoronixPhoronix·7w

    AWS Engineer Reports PostgreSQL Performance Halved By Linux 7.0, But A Fix May Not Be Easy

    An AWS engineer discovered that the Linux 7.0 development kernel cuts PostgreSQL throughput roughly in half on Graviton4 hardware. The regression was traced to Linux 7.0 restricting available kernel preemption modes, causing significantly more time spent in user-space spinlocks. A patch was proposed to restore PREEMPT_NONE as the default, but kernel maintainer Peter Zijlstra pushed back, arguing the proper fix is for PostgreSQL to adopt the Restartable Sequences (RSEQ) time slice extension introduced in Linux 7.0. If the patch is rejected, PostgreSQL users could face major performance degradation when Linux 7.0 stable ships in approximately two weeks.

  8. 8
    Article
    Avatar of jetbrainsJetBrains·5w

    Speeding up interactive rebase in JetBrains IDEs

    JetBrains engineers implemented an in-memory interactive rebase optimization for JetBrains IDEs, reducing execution time from tens of seconds to a few seconds on large repositories like the IntelliJ monorepo. Instead of checking out commits sequentially and updating the working tree and index, the IDE now uses Git plumbing commands (git cat-file, git commit-tree, git merge-tree, git update-ref) to rebuild commit chains entirely in memory. If a merge conflict is detected, it falls back to the standard Git rebase. The optimization covers reword, drop, squash, and extract-to-separate-commit operations. EAP telemetry confirmed consistent improvements across macOS, Windows, and Linux, with ~12% of rebases encountering conflicts that trigger the fallback. The feature ships by default in the 2026.1 release.

  9. 9
    Article
    Avatar of collectionsCollections·5w

    Bun v1.3.13: test isolation, 8x less memory for source maps, and faster gzip

    Bun v1.3.13 ships with notable performance gains and new test runner capabilities. Four new flags — --isolate, --parallel, --shard, and --changed — give developers finer control over test execution. Memory usage drops dramatically: bun install uses ~17x less memory by streaming tarballs to disk, and source maps consume 8x less memory. gzip compression is up to 5.5x faster via zlib-ng. New features include Range request support in Bun.serve(), SHA3 hash algorithms, and WebSocket unix socket schemes. The JavaScriptCore engine received 1,316 upstream commits, and 82 reported issues were closed including Node.js compatibility fixes and memory leak patches.

  10. 10
    Article
    Avatar of glwGolang Weekly·6w

    Golang Weekly Issue 596: April 10, 2026

    Golang Weekly issue 596 covers a range of Go ecosystem news. Highlights include Solod, a Go subset that compiles to C for systems programming without a runtime; constmap, an immutable Go map offering 3x faster lookups and 6x less memory at the cost of limited key types; Google's Agent Development Kit for Go reaching v1.0 with OpenTelemetry, self-healing logic, and safety guardrails; and several articles on Go patterns including multi-step sequences, the outbox pattern with Postgres, and a proposal for composite type constraints.

  11. 11
    Article
    Avatar of systemdesigncodexSystem Design Codex·4w

    Top Cache Eviction Strategies

    A structured overview of five cache eviction strategies: TTL, LRU, LFU, MRU, and Segmented LRU (SLRU). Each strategy is explained with how it works, best use cases, pros and cons, and where applicable, a code example using Redis. TTL removes items after a fixed time, LRU evicts the least recently accessed, LFU removes the least frequently accessed, MRU evicts the most recently accessed (useful for streaming/batch workloads), and SLRU splits the cache into probationary and protected segments for a hybrid approach.