P.01Go 1.27 HTTP/1 Body Drain: Connection Reuse Fixed
Go 1.27 now drains unread HTTP/1 response bodies on Close, so connections get reused. What changes, what to delete, and how to test it in your client.
Tag
90 articles tagged #Performance.
P.01Go 1.27 now drains unread HTTP/1 response bodies on Close, so connections get reused. What changes, what to delete, and how to test it in your client.
P.02HyperLogLog counts millions of unique visitors in about 12 KB with roughly 0.81% error. How it works, a Python sketch, and Redis PFADD in production.
P.03WAL mode lets SQLite readers and a writer work at once. Here is how it works, the pragmas to set, and the three ways it bites in production.
P.04Node.js 26.11.0 adds --process-timeout, histogram snapshots and diffs, Buffer.stringLength() and header validators. What to adopt, and the sqlite rename.
P.05Use zstd as your default, LZ4 when decompression speed beats size, gzip only for compatibility. Benchmark numbers, code and a decision table for 2026.
P.06MVCC keeps several versions of each row so reads never wait on writes. See xmin and xmax in a live Postgres session, and why long transactions cause bloat.
P.07Your p99 is slower than your average suggests, and fan-out makes it worse. How hedged requests and load shedding cut tail latency, with TypeScript code.
P.08An LSM tree turns random writes into sequential ones by buffering in memory and merging sorted files. How it works, what compaction costs, and when to pick it.
P.09A service worker is a script that sits between your page and the network. Register one, cache assets, serve offline, and ship updates without stale-cache bugs.
P.10JDK 27 arrived September 15 with G1 as the default GC everywhere and compact object headers on by default. What to measure before you roll it out.
P.11Beta 4 reverted six features, including SQL/PGQ graph queries, and PostgreSQL 19 turns JIT off by default. What to test before the October release.
P.12Python 3.15 adds explicit lazy imports, a frozendict built-in, UTF-8 by default and the Tachyon sampling profiler. What to test now and what can wait.
P.13When a popular cache key expires, every waiting request hits your database at once. Here's why that happens and four real ways to stop it.
P.14GraphQL resolvers hide N+1 queries differently than an ORM does. Why it happens per field, per request, and how DataLoader's batch-and-cache fixes it.
P.15TC39's Stage 3 import defer proposal loads a module without running it until you touch it. What problem it solves and why you can't ship it yet.
P.16Chrome's stable channel now ships every two weeks, not four, starting with Chrome 153 on Sept. 8, 2026. Here's what changes for testing and extensions.
P.17Postgres won't convert a live table into a partitioned one in place. Here's the CHECK-constraint trick that avoids a full-table rewrite and a long lock.
P.18Offset pagination breaks under concurrent writes and gets slower on every page. Cursor pagination fixes both, at the cost of features you might actually need.
P.19A heavy JavaScript task freezes your UI because it runs on the same thread as rendering. Here's how Web Workers fix that, with real benchmark numbers.
P.20Axum is the default for new Rust APIs in 2026, Actix-web wins on raw throughput, and Rocket wins on ergonomics. Here is which one fits your team.
P.21A cold start is the fresh execution environment a platform builds before running your code. Some take 5ms, others 2 seconds. Here's why, and how to cut it.
P.22Float16Array stores numbers in half the bytes of Float32Array, trading precision most workloads never used. What it's for, what it costs, where it fails.
P.23Three tools solve three different versions of "this query is slow." How materialized views, read replicas, and caches differ, and how to pick one.
P.24Bun 1.4 is the first stable release on the Rust runtime, adding browser automation, image and markdown APIs, and real speedups. Why it split opinion.
P.25A Bloom filter answers one question in almost no memory: is this definitely absent, or possibly present. How it works, and why false positives are a feature.
P.26An index turns a table scan into a few comparisons, but only for the queries it was built for. How B-trees work, and the write cost nobody budgets for.
P.27Your Node process climbs until it's OOM-killed and restarting buys hours. The actual workflow: heap snapshot diffing, retainer paths, and the fast tools.
P.28Qwik skips hydration instead of optimizing it. How resumability actually works, what Qwik 2.0 changed, and the honest tradeoffs before you ship on it.
P.29Chrome and Edge can prerender the next page before a user clicks, with no SPA rewrite. How the Speculation Rules API works, what it wastes, and shipping it.
P.30Next.js 16.3 cuts Turbopack dev memory roughly 90% on large apps, extends the disk cache to next build, and ships a native Rust React Compiler.
P.31TypeScript 7.0 hit GA on July 8, three weeks after the RC. The real GA benchmark, what strict mode locks in, and why Astro and Vue projects should wait.
P.32PostgreSQL 18 is on 18.4 and 19 is still beta, so 18 is what you should run today. What async I/O, UUIDv7, and virtual generated columns actually buy you.
P.33Astro 7.0 rewrote its compiler in Rust, jumped to Vite 8, and switched markdown parsers by default. What changed, what was removed, and how to upgrade.
P.34Bun 1.3 ships Bun.sql for Postgres, MySQL, MariaDB, and SQLite, plus a Redis client it claims is 7.9x faster than ioredis. When switching is worth it.
P.35Most teams default to cache-aside without asking if it's right. How cache-aside, write-through, and write-behind behave under real traffic, and how to pick.
P.36Sharding splits one database across many machines. The strategy you pick decides whether you get hot spots, painful resharding, or something that scales.
P.37All three move messages between services, but answer different questions about delivery, replay, and who reads what. The decision, and the failure modes.
P.38GPT-5.6 Sol runs on Cerebras wafer-scale hardware at up to 750 tokens per second, roughly 10x typical GPU inference. Who that speed is actually for.
P.39Read replicas are the standard fix for read load, but they open a gap between writing data and reading it back. What lag breaks, and how to design around it.
P.40Vite 8 replaced its dual esbuild and Rollup setup with Rolldown, a Rust bundler, by default. What changed, the real build times, and whether migrating pays.
P.41An N+1 bug turns one page load into hundreds of round trips. What causes it, how to spot it in Django, Rails, and Prisma, and the eager-loading fixes.
P.42PostgreSQL 19 Beta 1 adds REPACK, which rewrites bloated tables without a maintenance window, plus parallel autovacuum and smarter async I/O.
P.43Astro 6.4 ships a pluggable markdown pipeline and Sätteri, a Rust processor that speeds up content-heavy builds. It can't run your remark plugins yet.
P.44Next.js 16.3 preview added Instant Navigations, giving server-rendered apps the snappy feel of a client-side SPA. What changed, and when to use it.
P.45LLM bills grow faster than usage. Prompt caching, semantic dedup, tiered routing, and batch inference cut 40-80% without degrading output quality.
P.46Python asyncio fails in production from hidden blocking calls, CPU-bound work stalling the event loop, and cancellation bugs most tutorials skip.
SolidJS skips the virtual DOM entirely, compiling to real DOM operations with fine-grained signal-based reactivity. Here's what that means in practice.
Three.js makes WebGL usable. React Three Fiber makes Three.js feel like React. The fastest path to interactive 3D on the web, and how to use it.
AVIF and WebP now have near-universal browser support. Here's the image optimization stack that actually improves LCP scores in production in 2026.
CSS @layer lets you set explicit priority between your reset, base, components, and utilities. Here's how cascade layers work in production stylesheets.
ClickHouse answers queries over billions of rows in seconds that take Postgres minutes. Here's how it works and what to know before adopting it.
SQLite runs in every phone and browser. Turso extends it to the server and edge with replication, branching, and a network protocol. Here's when it makes sense.
Most slow queries come from a small set of fixable problems: missing indexes, N+1 patterns, and over-fetching. This is the practical diagnostic and fix guide.
WebGPU is now in Chrome, Firefox, and Safari: a general-purpose GPU compute layer, not just graphics, for ML inference, image processing, and simulation.
Three different approaches to styling a web application — Tailwind, CSS Modules, and CSS-in-JS libraries — and the team contexts where each one actually makes sense.
eBPF attaches programs to any Linux kernel hook, network packets, syscalls, function calls, without patching the kernel. Here's what developers need to know.
CRDTs and sync engines make local-first apps feel instant and merge edits without conflicts. Here is how they work and whether your app actually needs them.
CSS, Framer Motion, and GSAP each solve different animation problems in 2026. Here's how to pick the right one for your project and skip the rest.
The View Transitions API and scroll-driven animations are now baseline in every major browser. Here's what they replace and working code for both.
P.60DuckDB runs OLAP queries directly in your process, on files on your laptop, without a server. Here's how to use it and when it beats spinning up BigQuery or Redshift.
A hands-on comparison of Typesense, Meilisearch, and Algolia for production SaaS search: self-hosting, performance, pricing, and real implementation patterns.
P.62OpenTelemetry is the observability standard now, but most tutorials skip the hard part: which signals help you debug, and which just add noise and cost.
Media queries ask how wide the viewport is. Container queries ask how wide the component's parent is. That shift changes how you build reusable components.
P.64HPA scales on CPU and memory. But most production workloads don't scale well on those signals. KEDA, VPA, and Goldilocks fill the gaps that HPA leaves open.
P.65Google's crawler runs JavaScript, but on a delay and with different limits than a browser. Here's where JS app SEO actually breaks, and how to test for it.
The queries that wreck production Postgres share a few root causes. How to find them, read EXPLAIN ANALYZE properly, and fix them without guessing.
PWAs got a second wind once iOS 16.4 enabled push notifications and iOS 17 improved install flow. The gap between PWA and native is now narrow enough to matter.
P.68Interaction to Next Paint replaced First Input Delay in 2024, and most sites still haven't caught up. Here's why INP is harder and how to actually fix it.
Client state is easy. Server state, which lives on a backend and changes on its own, is where React apps make a mess. TanStack Query handles it cleanly.
k6 is a load testing tool with JavaScript scripting and CI integration. Writing meaningful tests, reading the results, and catching regressions early.
Python 3.13's experimental mode removes the Global Interpreter Lock. What the GIL actually does, what free-threaded Python changes, and what it doesn't fix.
Connection exhaustion is a common production failure at scale. Here's how pooling actually works, which tool fits which setup, and the config decisions that matter.
Caching is high-leverage and consistently misunderstood. How Cache-Control and ETags actually work, why stale content happens, and how to design for it.
Polars beats pandas on speed through Arrow memory, multi-threading, and lazy evaluation by default. Here's when the switch is worth it and how to migrate.
Biome is a Rust-based toolchain that replaces ESLint and Prettier with one fast binary for linting, formatting, and imports. Here is what migrating looks like.
Not every real-time feature needs WebSockets. Server-Sent Events handle most push scenarios with far less complexity. How to choose, with working code.
Every public API needs rate limiting, but the algorithm you choose shapes the user experience and the failure modes. Here's how each approach works and when to use it.
A few hours of optimization can cut CI time 40-60% and your GitHub Actions bill by a similar margin. Here's exactly how, with the configs that do it.
LLM calls are slow and expensive, so caching is the obvious fix. Here's when it backfires and how to implement exact-match and semantic caching.
HTTP/3 is in production at every major CDN and supported by all modern browsers. Whether it actually helps your application depends on factors most guides don't explain.
ALTER TABLE locks your database. Your migration takes longer than expected. Users get errors. Here's how to handle schema changes that don't interrupt production traffic.
Five different things people mean by 'update' (content, dependencies, performance, design, full rebuild) and how often each should actually happen.
Bun hits 52K req/sec, Deno 2 has full npm compatibility, and Node.js still leads enterprise adoption. Benchmarks and migration notes for picking a runtime.
Zig 0.16 ships an async rewrite, improved comptime, and growing production use at Bun, TigerBeetle, and Uber. Here is why C developers should stop ignoring it.
Async Django helps when a view waits on several slow network calls. It won't speed up CPU work or single queries, and the async ORM still runs sync underneath.
We built Colleatz, a food delivery platform on Next.js, FastAPI and MongoDB, with server-rendered menus, a persistent cart and live WebSocket order tracking.
CSS has changed more in the last 2 years than the previous 10. Here is what is production-ready, what to adopt now, and what you can stop using.
WebAssembly is not just for browser apps anymore. From edge computing to plugin systems, here are 5 production use cases reshaping how we build software.
Pick Astro for sites people read and Next.js for apps people operate. A decision guide for agency and marketing sites, checked against Astro 7 and Next.js 16.
A deep dive into edge computing platforms, comparing Cloudflare Workers, Vercel Edge Functions, and Netlify Edge. Learn when to use each and how to optimize for the edge.