# Garbage Collection

Published articles for Garbage Collection.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Java 27 adds improvements to garbage collection, headers, data security, and quantum key support

DevFeed: [Java 27 adds improvements to garbage collection, headers, data security, and quantum key support](<https://devfeed.tech/articles/java-27-grows-up-makes-better-choices-30925.md>)

Original publisher: [Read original article](<https://www.theregister.com/devops/2026/09/16/java-27-grows-up-makes-better-choices/5296707>)

Author: Joab Jackson

Published: 2026-09-16T04:50:00Z

Content type: news

Language: en

Sources: [www.theregister.com - Articles](<https://devfeed.tech/sources/www-theregister-com-articles.md>)

Topics: [java-27](<https://devfeed.tech/topics/java-27.md>), [Java](<https://devfeed.tech/topics/java.md>), [Security](<https://devfeed.tech/topics/security.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [devops](<https://devfeed.tech/tags/devops.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [java](<https://devfeed.tech/tags/java.md>), [java-27](<https://devfeed.tech/tags/java-27.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [jdk-27](<https://devfeed.tech/tags/jdk-27.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [post-quantum-cryptography](<https://devfeed.tech/tags/post-quantum-cryptography.md>)

### AI overview

Java 27 introduces improvements to JDK garbage collection, header sizes, data security, and quantum key support, with the stated aim of reducing developer friction.

### Source excerpt

Improvements in JDK garbage collection, header sizes, data security and quantum key support all should minimize developer friction

## What Go Taught Us About Java Garbage Collection

DevFeed: [What Go Taught Us About Java Garbage Collection](<https://devfeed.tech/articles/what-go-taught-us-about-java-garbage-collection-19424.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/parparvm-gc-small-heaps/>)

Author: Shai Almog

Published: 2026-09-12T00:00:00Z

Content type: opinion

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Java](<https://devfeed.tech/topics/java.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>)

Tags: [comparison](<https://devfeed.tech/tags/comparison.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [java](<https://devfeed.tech/tags/java.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A comparison between ParparVM and Go prompts an investigation into Java garbage-collection pacing, allocation thresholds, and memory use. Lowering ParparVM's allocation threshold reduced measured process resident memory from 98 MB to 38 MB, while throughput and p99 latency changed little in the reported test.

### Source excerpt

A Go performance comparison led us from stack allocation to GC pacing, parallel marking, and image caches. ParparVM can explore those choices while keeping ordinary Java APIs.

## Java JVM CPU and Memory Requests and Limits in Kubernetes

DevFeed: [Java JVM CPU and Memory Requests and Limits in Kubernetes](<https://devfeed.tech/articles/java-jvm-cpu-and-memory-requests-and-limits-in-kubernetes-19133.md>)

Original publisher: [Read original article](<https://learnkube.com/java-jvm-kubernetes-requests-limits>)

Author: Gulcan Topcu

Published: 2026-08-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Learnk8s](<https://devfeed.tech/sources/learnk8s.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Java](<https://devfeed.tech/topics/java.md>), [container](<https://devfeed.tech/topics/container.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [container](<https://devfeed.tech/tags/container.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [docker](<https://devfeed.tech/tags/docker.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [java](<https://devfeed.tech/tags/java.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [memory](<https://devfeed.tech/tags/memory.md>)

### AI overview

This tutorial explains how Kubernetes CPU and memory requests and limits affect Java JVM behavior. It covers container memory sizing, heap usage, garbage collection, CPU-derived JVM settings, and testing under load.

### Source excerpt

Setting Kubernetes CPU and memory requests and limits for a JVM service is four coupled decisions: container memory, heap size, GC selection, and CPU quota. Use the calculator to explore the space.

## Turso v0.7.0

DevFeed: [Turso v0.7.0](<https://devfeed.tech/articles/turso-v0-7-0-6055.md>)

Original publisher: [Read original article](<https://turso.tech/blog/turso-0.7.0>)

Author: Pekka Enberg

Published: 2026-07-13T00:00:00Z

Content type: release

Language: en

Sources: [Turso Blog](<https://devfeed.tech/sources/turso-blog.md>)

Topics: [Turso](<https://devfeed.tech/topics/turso.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [.NET](<https://devfeed.tech/topics/net.md>), [Python](<https://devfeed.tech/topics/python.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [database](<https://devfeed.tech/tags/database.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [memory](<https://devfeed.tech/tags/memory.md>), [net](<https://devfeed.tech/tags/net.md>), [process](<https://devfeed.tech/tags/process.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [sql](<https://devfeed.tech/tags/sql.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [turso](<https://devfeed.tech/tags/turso.md>)

### AI overview

Turso 0.7 improves performance and robustness for production and embedded workloads. The release speeds up MVCC concurrent writes, reduces recovery and memory costs, adds cooperative CPU yielding and safer allocation behavior, and expands SQL features. It also introduces a SQLite-compatible .NET provider and full-text search in the Python SDK.

### Source excerpt

Turso v0.7.0 release with faster MVCC concurrent writes, a non-blocking embeddable engine, PostgreSQL-style sequences, locale-backed collations, SQLite-compatible .NET bindings, and full-text search in Python.

## Cloud Topics: Level Zero garbage collection

DevFeed: [Cloud Topics: Level Zero garbage collection](<https://devfeed.tech/articles/cloud-topics-level-zero-garbage-collection-12686.md>)

Original publisher: [Read original article](<https://www.redpanda.com/blog/cloud-topics-level-zero-garbage-collection>)

Author: Oren Leiman

Published: 2026-05-19T00:00:00Z

Content type: article

Language: en

Sources: [Redpanda](<https://devfeed.tech/sources/redpanda.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Raft](<https://devfeed.tech/topics/raft.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [raft](<https://devfeed.tech/tags/raft.md>), [storage](<https://devfeed.tech/tags/storage.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

This article explains how Redpanda Cloud Topics safely garbage-collects temporary Level Zero (L0) objects after their data has been reorganized into Level One (L1) objects. It describes an epoch-based design and per-partition state for determining when L0 objects can be removed without data loss or unnecessary storage use.

### Source excerpt

How Redpanda Cloud Topics tracks the lifecycle of temporary L0 objects and determines when they're safe to delete, without risking data loss or runaway storage costs. Read more.

## Takeaways from Bjarne Stroustrup (Creator of C++)

DevFeed: [Takeaways from Bjarne Stroustrup (Creator of C++)](<https://devfeed.tech/articles/takeaways-from-bjarne-stroustrup-creator-of-c-18097.md>)

Original publisher: [Read original article](<https://www.developing.dev/p/takeaways-from-bjarne-stroustrup>)

Author: Ryan Peterman

Published: 2026-05-18T13:15:40Z

Content type: article

Language: en

Sources: [The Developing Dev](<https://devfeed.tech/sources/the-developing-dev.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [C](<https://devfeed.tech/topics/c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

An interview with Bjarne Stroustrup covers Bell Labs' research culture, how C++ abstractions can enable compiler optimizations, and the history of a standard garbage collection interface in C++.

### Source excerpt

What made Bell Labs special, negative overhead abstraction, C++ garbage collection

## A brief history of C/C++ programming languages

DevFeed: [A brief history of C/C++ programming languages](<https://devfeed.tech/articles/a-brief-history-of-c-c-programming-languages-29400.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/04/09/a-brief-history-of-c-c-programming-languages/>)

Author: Daniel Lemire

Published: 2026-04-09T14:58:53Z

Content type: opinion

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Java](<https://devfeed.tech/topics/java.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [Fortran](<https://devfeed.tech/topics/fortran.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [c-c-plus-plus](<https://devfeed.tech/tags/c-c-plus-plus.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [history](<https://devfeed.tech/tags/history.md>), [languages](<https://devfeed.tech/tags/languages.md>), [memory](<https://devfeed.tech/tags/memory.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>)

### AI overview

This article presents a brief history of C and C++, explaining how C emerged for low-level systems programming and how C++ added object-oriented, generic, and compile-time metaprogramming features. It then contrasts their portability challenges with Java and discusses JavaScript, Python, C#, and Go. The supplied text ends mid-sentence.

### Source excerpt

Initially, we had languages like Fortran (1957), Pascal (1970), and C (1972). Fortran was designed for number crunching and scientific computing. Pascal was restrictive with respect to low-level access (it was deliberately "safe", as meant for teaching structured programming). So C won out as a language that allowed low-level/unsafe programming (pointer arithmetic, direct memory access) ... Continue reading A brief history of C/C++ programming languages

## wastrel milestone: full hoot support, with generational gc as a treat

DevFeed: [wastrel milestone: full hoot support, with generational gc as a treat](<https://devfeed.tech/articles/wastrel-milestone-full-hoot-support-with-generational-gc-as-a-treat-35036.md>)

Original publisher: [Read original article](<https://wingolog.org/archives/2026/04/09/wastrel-milestone-full-hoot-support-with-generational-gc-as-a-treat>)

Author: Andy Wingo

Published: 2026-04-09T13:48:04Z

Content type: article

Language: en

Sources: [wingolog](<https://devfeed.tech/sources/wingolog.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [scheme](<https://devfeed.tech/topics/scheme.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [hoot](<https://devfeed.tech/tags/hoot.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [repl](<https://devfeed.tech/tags/repl.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [spidermonkey](<https://devfeed.tech/tags/spidermonkey.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [treats](<https://devfeed.tech/tags/treats.md>), [v8](<https://devfeed.tech/tags/v8.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [wastrel](<https://devfeed.tech/tags/wastrel.md>), [web](<https://devfeed.tech/tags/web.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

The article describes a Wastrel milestone: compiling WebAssembly files produced by the Hoot Scheme toolchain into native binaries, including a console-based read-eval-print loop. It covers the build process, runtime modules, binary size, dependencies, and initial performance observations.

### Source excerpt

Hear ye, hear ye: Wastrel and Hoot means REPL! Which is to say, Wastrel can now make native binaries out of WebAssembly files as produced by the Hoot Scheme toolchain, up to and including a full read-eval-print loop. Like the REPL on the Hoot web page, but instead of requiring a browser, you can just run it on your console. Amazing stuff! try it at home First, we need the latest Hoot. Build it from source, then compile a simple REPL: echo '(import (hoot repl)) (spawn-repl)' > repl.scm ./pre-inst-env hoot compile -fruntime-modules -o repl.wasm repl.scm This takes about a minute. The resulting wasm file has a pretty full standard library including a full macro expander and evaluator. Normally Hoot would do some aggressive tree-shaking to discard any definitions not used by the program, but with a REPL we don't know what we might need. So, we pass -fruntime-modules to instruct Hoot to record all modules and their bindings in a central registry, so they can be looked up at run-time. This results in a 6.6 MB Wasm file; with tree-shaking we would have been at 1.2 MB. Next, build Wastrel from source, and compile our new repl.wasm: wastrel compile -o repl repl.wasm This takes about 5 minutes on my machine: about 3 minutes to generate all the C, about 6.6MLOC all in all, split into a couple hundred files of about 30KLOC each, and then 2 minutes to compile with GCC and link-time optimization (parallelised over 32 cores in my case). I have some ideas to golf the first part down a bit, but the the GCC side will resist improvements. Finally, the moment of truth: $ ./repl Hoot 0.8.0 Enter `,help' for help. (hoot user)> "hello, world!" => "hello, world!" (hoot user)> statics When I first got the REPL working last week, I gasped out loud: it's alive, it's alive!!! Now that some days have passed, I am finally able to look a bit more dispassionately at where we're at. Firstly, let's look at the compiled binary itself. By default, Wastrel passes the -g flag to GCC, which results in bi

## Continuous profiling at Mercado Libre: Turning flamegraphs into fixes

DevFeed: [Continuous profiling at Mercado Libre: Turning flamegraphs into fixes](<https://devfeed.tech/articles/continuous-profiling-at-mercado-libre-turning-flamegraphs-into-fixes-22550.md>)

Original publisher: [Read original article](<https://medium.com/mercadolibre-tech/continuous-profiling-at-mercado-libre-turning-flamegraphs-into-fixes-2ee371c32bfd?source=rss----5011f85401f0---4>)

Author: Elton Hoffmann

Published: 2026-03-11T01:27:33Z

Content type: article

Language: en

Sources: [Mercado Libre Tech](<https://devfeed.tech/sources/mercado-libre-tech.md>)

Topics: [observability](<https://devfeed.tech/topics/observability.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [article](<https://devfeed.tech/tags/article.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [end-user-experience](<https://devfeed.tech/tags/end-user-experience.md>), [flamegraph](<https://devfeed.tech/tags/flamegraph.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [observability](<https://devfeed.tech/tags/observability.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-engineering](<https://devfeed.tech/tags/performance-engineering.md>), [platform-engineering](<https://devfeed.tech/tags/platform-engineering.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [uptime](<https://devfeed.tech/tags/uptime.md>)

### AI overview

Mercado Libre describes building a continuous profiling platform for about 35,000 microservices. The platform treats profiling as an observability signal alongside metrics, logs, and traces, with the goal of helping teams detect performance issues and automate fixes for certain issue classes.

### Source excerpt

We continue our series on Performance Engineering at Mercado Libre. In previous articles, we discussed how we crafted an observability culture across the company, how performance relates to other observability signals, and how the Performance Engineering team partners with Business Units to enhance platform efficiency. Today, we'll show how we built a continuous profiling platform for 35,000 microservices and how we started turning profiles into automated fixes. Context Our goal in the Performance Engineering team is threefold: to ensure uptime; to improve the end-user experience by reducing latency; to reduce computing costs. As a cross-functional team, we usually work with application owners to achieve these goals. In our two years of existence, our joint efforts have taken us through countless incidents and bottlenecks. Each problem is unique, but over time, we've seen some common patterns: high memory allocation, lack of garbage collection (GC) tuning, thread pool saturation, blocking I/O, and heavy workloads processing repeated tasks. Image 1: Typical flamegraph of high CPU usage replacing string patterns Trained eyes spot these signals quickly. But two eyeballs won't scale to thousands of services. Mercado Libre is an ever-growing company, with about 35,000 microservices, 30,000 deploys per day, and more than 16,000 people in IT roles. What are the odds that a performance issue found on one microservice doesn't exist in another? Or at least a similar issue? We often encounter systems with issues that are easy to fix but hard to detect (unless you have the right tools). It became clear we had to scale. We needed a platform-level solution that would let teams self-diagnose and self-tune. By the end of this article, you'll see how we built that and how we now automate both detection and fixes for certain classes of issues. Continuous profiling After setting our goal to improve performance tooling, we developed our own continuous profiling solution. Why profiling,

## Inside Go - Part 3: Garbage Collection

DevFeed: [Inside Go - Part 3: Garbage Collection](<https://devfeed.tech/articles/inside-go-part-3-garbage-collection-39765.md>)

Original publisher: [Read original article](<https://furkankolcu.com/post/inside-go-part-3-garbage-collection>)

Author: Furkan Kolcu

Published: 2025-09-16T14:30:04Z

Content type: tutorial

Language: en

Sources: [Furkan Kolcu - Software Engineer Blog](<https://devfeed.tech/sources/furkan-kolcu-software-engineer-blog.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [go-garbage-collector](<https://devfeed.tech/tags/go-garbage-collector.md>), [gogc](<https://devfeed.tech/tags/gogc.md>), [golang](<https://devfeed.tech/tags/golang.md>), [inside-go](<https://devfeed.tech/tags/inside-go.md>), [performance](<https://devfeed.tech/tags/performance.md>), [runtime](<https://devfeed.tech/tags/runtime.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This tutorial explains the evolution of Go's garbage collector from stop-the-world pauses to mostly concurrent collection. It introduces tri-color marking, explains the purpose of write barriers, and indicates that it will cover GOGC tuning.

### Source excerpt

How Go's GC grew from full pauses to mostly concurrent, what the tri-color algorithm does, why write barriers matter, and how to tune GC with GOGC without shooting yourself in the foot are how we will walk through in this part.

## Inside Go -- Part 2: Memory Management in Go

DevFeed: [Inside Go -- Part 2: Memory Management in Go](<https://devfeed.tech/articles/inside-go-part-2-memory-management-in-go-39764.md>)

Original publisher: [Read original article](<https://furkankolcu.com/post/inside-go-part-2-memory-management-in-go>)

Author: Furkan Kolcu

Published: 2025-09-12T16:30:37Z

Content type: tutorial

Language: en

Sources: [Furkan Kolcu - Software Engineer Blog](<https://devfeed.tech/sources/furkan-kolcu-software-engineer-blog.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [escape analysis](<https://devfeed.tech/topics/escape-analysis.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [escape-analysis](<https://devfeed.tech/tags/escape-analysis.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [go-memory-management](<https://devfeed.tech/tags/go-memory-management.md>), [golang](<https://devfeed.tech/tags/golang.md>), [heap](<https://devfeed.tech/tags/heap.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [performance](<https://devfeed.tech/tags/performance.md>), [stack](<https://devfeed.tech/tags/stack.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This tutorial explains how Go manages memory through stack and heap allocation, escape analysis, and garbage collection. It also shows how compiler decisions affect performance and how to inspect escape analysis results.

### Source excerpt

A deep dive into how Go handles memory behind the scenes. Learn the difference between stack and heap, how escape analysis works, and why memory management plays a key role in performance.

## Garbage Collection In Go : Part III - GC Pacing

DevFeed: [Garbage Collection In Go : Part III - GC Pacing](<https://devfeed.tech/articles/garbage-collection-in-go-part-iii-gc-pacing-22148.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2019/07/garbage-collection-in-go-part3-gcpacing.html>)

Published: 2025-08-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Code](<https://devfeed.tech/topics/code.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [latency](<https://devfeed.tech/tags/latency.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This third article in a three-part series explains how Go's garbage collector paces itself according to workload demands. It uses sequential and concurrent examples to examine adaptive behavior and emphasizes reducing allocations per unit of work to reduce garbage-collection latency and improve application performance.

### Source excerpt

Go's garbage collector is designed not only to manage memory safely but also to pace itself intelligently, striking a balance between low latency and high throughput. This blogpost explores how the GC adapts its pace to workload demands, demonstrated through both sequential and concurrent program examples, and why reducing allocations per unit of work is the most effective way to lighten its load. Originally published in 2019, its core principles remain just as relevant today, offering Go developers a deeper understanding of the runtime's adaptive behavior and confidence that the GC can find the right rhythm without extensive manual tuning.

## Garbage Collection In Go : Part I - Semantics

DevFeed: [Garbage Collection In Go : Part I - Semantics](<https://devfeed.tech/articles/garbage-collection-in-go-part-i-semantics-22140.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html>)

Published: 2025-06-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [guide](<https://devfeed.tech/tags/guide.md>), [internals](<https://devfeed.tech/tags/internals.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This tutorial explains the semantics of Go's garbage collector, including heap allocation tracking, concurrent tri-color mark-and-sweep collection, and Stop The World events. It presents a behavioral model intended to remain useful despite changes to runtime implementation details.

### Source excerpt

This article was originally published in 2018, yet its core insights into Go's garbage collection model remain highly relevant for developers today. While some implementation details of Go's runtime have evolved, the foundational concepts explored here--such as the semantics of the tri-color mark and sweep algorithm, Stop The World (STW) events, and GC trace interpretation--are still essential to understanding how Go manages memory. Whether you're optimizing performance or deepening your knowledge of Go internals, this post continues to offer a clear and practical guide to working with the garbage collector, not against it.

## Rendering the Java heap as a Treemap

DevFeed: [Rendering the Java heap as a Treemap](<https://devfeed.tech/articles/rendering-the-java-heap-as-a-treemap-25629.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/rendering-the-java-heap-as-a-treemap>)

Author: Pierre-Yves Ricau

Published: 2024-09-25T04:37:22Z

Content type: tutorial

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [gc](<https://devfeed.tech/tags/gc.md>), [graph-theory](<https://devfeed.tech/tags/graph-theory.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>)

### AI overview

An exploration of Java heap dumps that explains shallow size, retained size, garbage-collection roots, and dominators. It also demonstrates using Shark and Graphviz to explore heap and view hierarchies.

### Source excerpt

Exploring heap dumps I have investigated many heap dumps over the years, and I usually switch back and forth between two tools: YourKit Java Profiler to poke around the heap and look for interesting things (ask your company to buy a license!) Shark...

## Garbage Collection and Metastability

DevFeed: [Garbage Collection and Metastability](<https://devfeed.tech/articles/garbage-collection-and-metastability-12561.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2024/08/14/gc-metastable.html>)

Author: Marc Brooker

Published: 2024-08-14T00:00:00Z

Content type: article

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Python](<https://devfeed.tech/topics/python.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [production](<https://devfeed.tech/tags/production.md>), [python](<https://devfeed.tech/tags/python.md>), [rust](<https://devfeed.tech/tags/rust.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The article explains how garbage collection can contribute to metastability in large-scale systems. Increased memory pressure can raise GC time and request cost, increasing latency and reducing throughput; this can increase in-flight requests and memory pressure further, creating a self-perpetuating cycle that may collapse systems without limited concurrency. It cites production experience and research showing that some garbage collectors can increase work cost by up to 70% under higher memory pressure.

### Source excerpt

Garbage Collection and Metastability Cleaning up is hard to do. I've written a lot about stability and metastability, but haven't touched on one other common cause of metastability in large-scale systems: garbage collection. GC is great. Garbage collected languages like Javascript, Java, Python, and Go power a big chunk of the internet's infrastructure. Until Rust came along, choosing memory safety typically implied choosing garbage collection. For almost all applications, languages with garbage collection are a reasonable choice. The trade-offs between GC and not-GC have been well trodden, so I'm not going to spend time on any of them except one: metastability. As we've discussed in prior posts, metastability comes about when systems have self-perpetuating cycles which permanently degrade goodput. Here's what the cycle for GC might look like: Increasing memory pressure increases the amount of time it takes for the GC to run, and increases the cost of handling any given request, this increases per-request latency and reduces throughput, this increases the number of requests in flight (and their associated per-request memory), which increases memory pressure. In a system that limits concurrency (whether a closed system or an open system with concurrency-limiting throttling) this isn't likely to happen. In a system without limited concurrency (even if it does limit arrival rate), even a short-lived excursion can send the system into a mode where it spins around this loop until it collapses. But do GCs behave that way? The only controversial step in the loop is higher GC overhead, implying that increasing memory pressure increases per-request latency even in the presence of excess CPU (so it's more than just the effect of memory management consuming more CPU, which would happen without GC). I've seen significant in-production evidence for that, and there seems to be some good evidence from the literature. For example, see Figure 2 from The DaCapo Benchmarks by Blackbur

## WebAssembly JSPI is going to origin trial

DevFeed: [WebAssembly JSPI is going to origin trial](<https://devfeed.tech/articles/webassembly-jspi-is-going-to-origin-trial-3528.md>)

Original publisher: [Read original article](<https://v8.dev/blog/jspi-ot>)

Author: Francis McCabe, Thibaud Michaud, Ilya Rezvov, Brendan Dahl

Published: 2024-03-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [V8](<https://devfeed.tech/sources/v8.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [API](<https://devfeed.tech/topics/api.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Web APIs](<https://devfeed.tech/topics/web-apis.md>), [Promise](<https://devfeed.tech/topics/promise.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [pre-release](<https://devfeed.tech/tags/pre-release.md>), [web-apis](<https://devfeed.tech/tags/web-apis.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

WebAssembly's JavaScript Promise Integration (JSPI) API is entering a Chrome M123 origin trial. It lets sequential code compiled to WebAssembly access asynchronous Web APIs by suspending a WebAssembly application when a Promise is returned and resuming it when the Promise resolves. The article explains the Emscripten requirement, origin-trial registration options, standardization status, and performance caveats related to spawned computations and garbage collection.

### Source excerpt

WebAssembly's JavaScript Promise Integration (JSPI) API is entering an origin trial, with Chrome release M123. What that means is that you can test whether you and your users can benefit from this new API. JSPI is an API that allows so-called sequential code - that has been compiled to WebAssembly - to access Web APIs that are asynchronous. Many Web APIs are crafted in terms of JavaScript Promises: instead of immediately performing the requested operation they return a Promise to do so. When the action is finally performed, the browser's task runner invokes any callbacks with the Promise. JSPI hooks into this architecture to allow a WebAssembly application to be suspended when the Promise is returned and resumed when the Promise is resolved. You can find out more about JSPI and how to use it here and the specification itself is here. Requirements # Apart from registering for an origin trial, you will also need to generate the appropriate WebAssembly and JavaScript. If you are using Emscripten, then this is straightforward. You should ensure that you are using at least version 3.1.47. Registering for the origin trial # JSPI is still pre-release; it is going through a standardization process and will not be fully released until we get to phase 4 of that process. To use it today, you can set a flag in the Chrome browser; or, you can apply for an origin trial token that will allow your users to access it without having to set the flag themselves. To register you can go here, make sure to follow the registration signup process. To find out more about origin trials in general, this is a good starting place. Some potential caveats # There have been some discussions in the WebAssembly community about some aspects of the JSPI API. As a result, there are some changes indicated, which will take time to fully work their way through the system. We anticipate that these changes will be soft launched: we will share the changes as they become available, however, the existing API wi

## Choosing Good SLIs

DevFeed: [Choosing Good SLIs](<https://devfeed.tech/articles/choosing-good-slis-22991.md>)

Original publisher: [Read original article](<https://bravenewgeek.com/choosing-good-slis/>)

Published: 2024-02-19T21:11:17Z

Content type: opinion

Language: en

Sources: [Brave New Geek](<https://devfeed.tech/sources/brave-new-geek.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [monitor](<https://devfeed.tech/topics/monitor.md>), [on-prem](<https://devfeed.tech/topics/on-prem.md>), [autoscaling](<https://devfeed.tech/topics/autoscaling.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [autoscaling](<https://devfeed.tech/tags/autoscaling.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [devops](<https://devfeed.tech/tags/devops.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [on-prem](<https://devfeed.tech/tags/on-prem.md>), [ops](<https://devfeed.tech/tags/ops.md>), [service-level-agreements](<https://devfeed.tech/tags/service-level-agreements.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [sre](<https://devfeed.tech/tags/sre.md>)

### AI overview

The article explains why organizations moving from on-premises environments to the cloud should reevaluate their Service Level Indicators (SLIs). It argues that resource-focused metrics and operational patterns from data centers may be less useful in cloud environments, where autoscaling, autohealing, ephemeral instances, and different infrastructure characteristics can obscure application issues.

### Source excerpt

Transitioning from an on-prem environment to a cloud environment involves a lot of major shifts for organizations. One of those shifts is often around how we monitor the overall health of systems. The typical way to measure things like the availability, reliability, and performance of systems is with SLIs or Service Level Indicators. SLIs are a valuable tool both on-prem and in the cloud, but when it comes to the latter, I often see organizations carrying over some operational anti-patterns from their data center environment.

## Adventures in Garbage Collection: Improving GC Performance in our Massive Monolith

DevFeed: [Adventures in Garbage Collection: Improving GC Performance in our Massive Monolith](<https://devfeed.tech/articles/adventures-in-garbage-collection-improving-gc-performance-in-our-massive-monolith-1291.md>)

Original publisher: [Read original article](<https://shopify.engineering/adventures-in-garbage-collection>)

Author: Jean Boussier

Published: 2023-04-06T14:30:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [latency](<https://devfeed.tech/tags/latency.md>), [logging](<https://devfeed.tech/tags/logging.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [shopify](<https://devfeed.tech/tags/shopify.md>)

### AI overview

Shopify describes experiments to reduce the latency impact of Ruby garbage collection in its monolith. The article explains an iterative process of improving logging and metrics, forming hypotheses, testing and shipping changes, and evaluating whether to keep, adjust, or revert them. It also warns against changing garbage-collection settings without reliable performance measurements.

### Source excerpt

At the beginning of this year, we ran several experiments aimed at reducing the latency impact of the Ruby garbage collector (GC) in Shopify's monolith. In this article, Jean talks about the changes we made to improve GC performance, and more importantly, how we got to these changes.

## Understanding Dart Memory: Weak References and Finalizers Demystified

DevFeed: [Understanding Dart Memory: Weak References and Finalizers Demystified](<https://devfeed.tech/articles/understanding-dart-memory-weak-references-and-finalizers-demystified-23987.md>)

Original publisher: [Read original article](<https://quickbirdstudios.com/blog/dart-weak-references-finalizers/>)

Author: Marvin März

Published: 2023-01-03T10:00:35Z

Content type: tutorial

Language: en

Sources: [QuickBird Studios Blog](<https://devfeed.tech/sources/quickbird-studios-blog.md>)

Topics: [Dart](<https://devfeed.tech/topics/dart.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>)

Tags: [crash](<https://devfeed.tech/tags/crash.md>), [dart](<https://devfeed.tech/tags/dart.md>), [examples](<https://devfeed.tech/tags/examples.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [implement](<https://devfeed.tech/tags/implement.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [performance](<https://devfeed.tech/tags/performance.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [post](<https://devfeed.tech/tags/post.md>)

### AI overview

This tutorial explains how Dart garbage collection, weak references, and finalizers relate to memory management. It describes how lingering references can retain unused objects, causing memory leaks, poor performance, or app crashes, and introduces weak references and finalizers as ways to reduce common memory-management problems.

### Source excerpt

Find out how weak references and finalizers can help you manage memory and improve the performance of your Dart applications. Explore examples and code samples that show you how to implement weak references and finalizers in Dart, and avoid common mistakes. The post Understanding Dart Memory: Weak References and Finalizers Demystified appeared first on QuickBird Studios.

## Investigation of a Gradle and IntelliJ IDEA Memory Leak

DevFeed: [Investigation of a Gradle and IntelliJ IDEA Memory Leak](<https://devfeed.tech/articles/let-s-investigate-a-gradle-intellij-memory-leak-25625.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/gradle-intellij-memory-leak>)

Author: Pierre-Yves Ricau

Published: 2022-10-12T17:26:46Z

Content type: tutorial

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Java](<https://devfeed.tech/topics/java.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [graph](<https://devfeed.tech/tags/graph.md>), [idea](<https://devfeed.tech/tags/idea.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [java](<https://devfeed.tech/tags/java.md>), [leak](<https://devfeed.tech/tags/leak.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A team investigation examines a Gradle process memory leak during project import in IntelliJ IDEA. The article describes heap analysis using dominator trees, pending finalization, and paths from GC roots.

### Source excerpt

👋 Hi, this is P.Y., I work as an Android Engineer at Block. This article shares a team investigation by Tony Robalik, Pablo Baxter, Roger Hu and myself into a recent Gradle / IntelliJ memory leak. O

## Adding the V8 CPU Profiler to v8go

DevFeed: [Adding the V8 CPU Profiler to v8go](<https://devfeed.tech/articles/adding-the-v8-cpu-profiler-to-v8go-1289.md>)

Original publisher: [Read original article](<https://shopify.engineering/adding-v8-cpu-profiler-v8go>)

Author: Genevieve LEsperance

Published: 2022-03-04T15:10:36Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [V8](<https://devfeed.tech/topics/v8.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Library](<https://devfeed.tech/topics/library.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [go](<https://devfeed.tech/tags/go.md>), [google](<https://devfeed.tech/tags/google.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

This article describes adding V8 CPU Profiler support to v8go, a Go and C++ library that executes JavaScript through V8 isolates. It explains the profiler's API, sampling-based CPU profiling, returned call trees, and the role of benchmarking in evaluating implementation performance.

### Source excerpt

V8 is Google's open source high-performance JavaScript and WebAssembly engine written in C++. v8go is a library written in Go and C++ allowing users to execute JavaScript from Go using V8 isolates. Using Cgo bindings allows us to run JavaScript in Go at native performance. The v8go library, developed by Roger Chapman, aims to provide an idiomatic way for Go developers to interface with V8. As it turns out, this can be tricky.

## Node.js 14.13.1 (Current)

DevFeed: [Node.js 14.13.1 (Current)](<https://devfeed.tech/articles/node-js-14-13-1-current-2542.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v14.13.1>)

Published: 2020-10-07T21:37:03Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [exception](<https://devfeed.tech/tags/exception.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [servers](<https://devfeed.tech/tags/servers.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

Node.js 14.13.1 is a current release containing updates across the filesystem, build system, console, cryptography, dependencies, documentation, ECMAScript modules, and related runtime behavior.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Comparing OCaml's best-fit and next-fit memory allocators

DevFeed: [Comparing OCaml's best-fit and next-fit memory allocators](<https://devfeed.tech/articles/memory-allocator-showdown-20194.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/memory-allocator-showdown/>)

Author: Stephen Dolan

Published: 2020-09-15T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [gc](<https://devfeed.tech/tags/gc.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article examines how to compare OCaml's best-fit and next-fit memory allocators in a garbage-collected system. Benchmarks show that best-fit can trade slightly slower execution for lower memory use, and that varying garbage-collection settings reveals a broader space-time performance trade-off.

### Source excerpt

Since version 4.10, OCaml offers a new best-fit memory allocator alongside its existing default, the next-fit allocator. At Jane Street, we've seen a big improvement after switching over to the new allocator. This post isn't about how the new allocator works. For that, the best source is these notes from a talk by its author. Instead, this post is about just how tricky it is to compare two allocators in a reasonable way, especially for a garbage-collected system.

## Reasons a company considers replacing its backend technology stack

DevFeed: [Reasons a company considers replacing its backend technology stack](<https://devfeed.tech/articles/why-we-at-famous-company-switched-to-hyped-technology-27357.md>)

Original publisher: [Read original article](<https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/>)

Published: 2020-05-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Saagar Jha](<https://devfeed.tech/sources/saagar-jha.md>)

Topics: [Back end](<https://devfeed.tech/topics/backend.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [latency](<https://devfeed.tech/tags/latency.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>)

### AI overview

A company describes considering a replacement for its backend technology stack. The stated concerns include latency spikes associated with garbage collection and difficulty hiring developers for its existing language.

### Source excerpt

When $FAMOUS_COMPANY launched in 2010, it ran on a single server in $TECHBRO_FOUNDER's garage. Since then, we've experienced explosive VC-funded growth and today we have hundreds of millions of daily active users (DAUs) from all around the globe accessing our products from our mobile apps and on $famouscompany.com. We've since made a couple of panic-induced changes to our backend to manage our technical debt (usually right after a high-profile outage) to keep our servers from keeling over. Our existing technology stack has served us well for all these years, but as we seek to grow further it's clear that a complete rewrite of our application is something which will somehow prevent us from losing two billion dollars a year on customer acquisition.

[Next page](<https://devfeed.tech/tags/garbage-collection.md?cursor=WyIyMDIwLTA1LTEwVDAwOjAwOjAwKzAwOjAwIiwgImFjMzcxMDA5LTYwMzUtNGFkNi05NDQ1LWUzODEyODJkMDczOSJd>)