# Memory Management

Published articles for Memory Management.

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

## Go 1.27 will make some allocations cheaper

DevFeed: [Go 1.27 will make some allocations cheaper](<https://devfeed.tech/articles/go-1-27-will-make-some-allocations-cheaper-29422.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/08/15/go-1-27-will-make-some-allocations-cheaper/>)

Author: Daniel Lemire

Published: 2026-08-15T20:59:19Z

Content type: article

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [go](<https://devfeed.tech/tags/go.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>)

### AI overview

The article explains Go's stack and heap allocations, including how escaping values, slices, and dynamic data structures can cause heap allocations. It notes that Go 1.27 is intended to make some heap allocations cheaper, while the supplied excerpt does not specify the implementation details.

### Source excerpt

Like most programming languages, Go has both stack allocations, whose lifetime is limited to the current function, and dynamic (or heap) allocations. The name stack comes from the fact that the memory management is somewhat trivial. There is typically one stack per thread (or goroutine in Go). When a function needs memory, it simply appends ... Continue reading Go 1.27 will make some allocations cheaper

## Using OxCaml to implement type-safe reference counting between OCaml and Python

DevFeed: [Using OxCaml to implement type-safe reference counting between OCaml and Python](<https://devfeed.tech/articles/using-oxcaml-to-implement-type-safe-reference-counting-between-ocaml-and-python-20199.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/oxcaml-typesafe-reference-counting-python/>)

Author: Nicolas Trangez

Published: 2026-06-15T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Python](<https://devfeed.tech/topics/python.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data analysis](<https://devfeed.tech/topics/data-analysis.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [gc](<https://devfeed.tech/tags/gc.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

Jane Street describes using OxCaml extensions to implement type-safe reference counting between OCaml and Python. The approach addresses delayed deallocation when objects cross the language boundary, including for large data frames and scarce resources such as GPU memory.

### Source excerpt

Jane Street is known for being an OCaml shop, but for years now Python has been our second major programming language, acting as the primary tool for data analysis and (especially importantly these days) machine learning. Most of our traders and researchers think and write in Python, even as the majority of our infrastructure is written in OCaml.

## 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

## Combating AI coding atrophy with Rust

DevFeed: [Combating AI coding atrophy with Rust](<https://devfeed.tech/articles/combating-ai-coding-atrophy-with-rust-25280.md>)

Original publisher: [Read original article](<https://kau.sh/blog/learn-rust-ai-atrophy/>)

Author: Kaushik Gopal

Published: 2025-12-05T08:00:00Z

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code](<https://devfeed.tech/topics/code.md>), [Software](<https://devfeed.tech/topics/software.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [rust](<https://devfeed.tech/tags/rust.md>), [software](<https://devfeed.tech/tags/software.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The author reflects on learning Rust to counter concerns about AI-assisted coding causing coding skills to atrophy. Rust's systems-level design, ownership model, lifetimes, and lack of garbage collection provide concepts that challenge the author beyond familiar Kotlin and Go. The article also notes that several everyday developer tools and software use Rust in substantial ways.

### Source excerpt

It's no secret that I've fully embraced AI for my coding. A valid concern (and one I've been thinking about deeply) is the atrophying of the part of my brain that helps me code. To push back on that, I've been learning Rust on the side for the last few months. I am absolutely loving it. Why Rust? ## Systems level language ### Kotlin remains my go-to language. It's the language I know like the back of my hand. If someone sends me a swath of Kotlin code, whether handwritten or AI generated, I can quickly grok it and form a strong opinion on how to improve it. But Kotlin is a high-level language that runs on a JVM. There are structural limits to the performance you can eke out of it, and for most of my career1 I've worked with garbage-collected languages. For a change, I wanted a systems-level language, one without the training wheels of a garbage collector. New paradigms ### I also wanted a language with a different core philosophy, something that would force me to think in new ways. I picked up Go casually but it didn't feel like a big enough departure from the languages I already knew. It just felt more useful to ask AI to generate Go code than to learn it myself. With Rust, I could get code translated, but then I'd stare at the generated code and realize I was missing some core concepts and fundamentals. I loved that! The first time I hit a lifetime error, I had no mental model for it. That confusion was exactly what I was looking for. Coming from a GC world, memory management is an afterthought -- if it requires any thought at all. Rust really pushes you to think through the ownership and lifespan of your data, every step of the way. In a bizarre way, AI made this gap obvious. It showed me where I didn't understand things and pointed me toward something worth learning. Built with Rust ### Here's some software that's either built entirely in Rust or uses it in fundamental ways: fd (my tool of choice for finding files) ripgrep (my tool of choice for searching files)

## Optimizing RAM Usage on ESP32-C2

DevFeed: [Optimizing RAM Usage on ESP32-C2](<https://devfeed.tech/articles/optimizing-ram-usage-on-esp32-c2-13734.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/11/esp32c2-ram-optimization/>)

Author: John Lee

Published: 2025-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP32](<https://devfeed.tech/topics/esp32.md>), [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [ble](<https://devfeed.tech/tags/ble.md>), [blog](<https://devfeed.tech/tags/blog.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c2](<https://devfeed.tech/tags/esp32-c2.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [memory-optimization](<https://devfeed.tech/tags/memory-optimization.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [practitioner](<https://devfeed.tech/tags/practitioner.md>), [wi-fi](<https://devfeed.tech/tags/wi-fi.md>)

### AI overview

This article explains how to optimize RAM usage on the ESP32-C2 with ESP-IDF v5.5. It describes the chip's memory layout, methods for measuring memory consumption, and configuration changes that can free more than 100 KB of additional memory in suitable applications.

### Source excerpt

ESP32-C2 has 256 KB of physical RAM, but with default configurations, only 24 KB remains free in typical Wi-Fi + BLE scenarios. This article explores comprehensive memory optimization strategies that can free up over 100 KB of RAM, making complex applications viable on this cost-effective chip.

## 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.

## Inside Go -- How It Really Works: Series Kickoff

DevFeed: [Inside Go -- How It Really Works: Series Kickoff](<https://devfeed.tech/articles/inside-go-how-it-really-works-series-kickoff-39762.md>)

Original publisher: [Read original article](<https://furkankolcu.com/post/inside-go-how-it-really-works-series-kickoff>)

Author: Furkan Kolcu

Published: 2025-09-11T10:16:52Z

Content type: article

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>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Code](<https://devfeed.tech/topics/code.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [escape analysis](<https://devfeed.tech/topics/escape-analysis.md>), [generics](<https://devfeed.tech/topics/generics.md>), [modules](<https://devfeed.tech/topics/modules.md>), [reproducible builds](<https://devfeed.tech/topics/reproducible-builds.md>)

Tags: [compilation](<https://devfeed.tech/tags/compilation.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [generics](<https://devfeed.tech/tags/generics.md>), [go](<https://devfeed.tech/tags/go.md>), [go-compiler](<https://devfeed.tech/tags/go-compiler.md>), [go-concurrency](<https://devfeed.tech/tags/go-concurrency.md>), [go-performance](<https://devfeed.tech/tags/go-performance.md>), [go-runtime](<https://devfeed.tech/tags/go-runtime.md>), [golang](<https://devfeed.tech/tags/golang.md>), [how-go-works](<https://devfeed.tech/tags/how-go-works.md>), [inside-go](<https://devfeed.tech/tags/inside-go.md>), [internals](<https://devfeed.tech/tags/internals.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [performance](<https://devfeed.tech/tags/performance.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This article launches a technical series about how Go works internally. The planned installments cover compilation, memory management, garbage collection, concurrency, the runtime, performance tuning, interfaces, generics, modules, and reproducible builds, with code examples and runtime experiments.

### Source excerpt

A deep-dive series into Go's internals. From compilation to memory management, concurrency, and performance tuning, each part unpacks how Go operates under the hood with clear explanations and real-life code examples.

## ReactOS 0.4.15 released

DevFeed: [ReactOS 0.4.15 released](<https://devfeed.tech/articles/reactos-0-4-15-released-33194.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/reactos-0415-released/>)

Published: 2025-03-21T00:00:00Z

Content type: release

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [USB](<https://devfeed.tech/topics/usb.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Oracle-VM-VirtualBox](<https://devfeed.tech/topics/vm-box.md>)

Tags: [audio](<https://devfeed.tech/tags/audio.md>), [cache](<https://devfeed.tech/tags/cache.md>), [features](<https://devfeed.tech/tags/features.md>), [free](<https://devfeed.tech/tags/free.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [release](<https://devfeed.tech/tags/release.md>), [usb](<https://devfeed.tech/tags/usb.md>), [virtualbox](<https://devfeed.tech/tags/virtualbox.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

ReactOS 0.4.15 is released with Plug and Play, audio, memory management, registry, accessory, system tool, and shell improvements. The release adds support for booting from USB devices and more third-party drivers, improves audio playback and VirtualBox sound, and fixes compatibility issues affecting executables in remote locations.

### Source excerpt

We are pleased to announce the release of ReactOS 0.4.15! This release offers Plug and Play fixes, audio fixes, memory management fixes, registry healing, improvements to accessories and system tools including Notepad, Paint, RAPPS, the Input Method Editor, and shell improvements. We chose to release this version of ReactOS in honor of Eric Kohl's first commit to the ReactOS code base, which dates back to 1999. Eric Kohl is the oldest active contributor of the project, and this is his 26th ReactOS anniversary!

## 0.6.6: Memory Management Improvements

DevFeed: [0.6.6: Memory Management Improvements](<https://devfeed.tech/articles/0-6-6-memory-management-improvements-22390.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2025/03/066-memory-management-improvements.html>)

Author: Nenad Rakocevic (noreply@blogger.com)

Published: 2025-03-19T16:11:00Z

Content type: release

Language: en

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

Topics: [Red](<https://devfeed.tech/topics/red.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [gc](<https://devfeed.tech/tags/gc.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

Red 0.6.6 introduces low-level memory-management and garbage-collection improvements. The release adds management for unused external resources such as image buffers and font handles, and replaces conservative native-stack scanning with a more precise approach supported by compiler-generated frame hints.

### Source excerpt

This new milestone brings many low-level improvements to Red's memory management and garbage collecting. Most of those are long-planned additions needed to complete the internal memory model and make it robust enough for the future stable Red v1.0. First, here is a simplified overview of the Red memory model (existing parts in green color, new parts in orange, non-Red parts in blue): All Red values are stored in series. Some Red values require one or more buffers to hold their content. The values can never reference a buffer directly, but only through a node reference, to enable relocation when expanding the series buffer or when moving it around during compaction by the GC. Now let's dive into the hairy details! External resources GC The Red/View engine backends rely on external resources provided by the OS. Among those resources, some are linked to face! or font! object and require special care when those objects are not reachable anymore. So far, our GC (Garbage Collector) was not able to release such resources (images bitmap buffers and fonts handles), as unreachable Red aggregate values are seeing as simple series during the sweeping GC stage. In order to improve that, we have added an external resources manager, that will track and free unused resources, allowing now unrestricted images and fonts usage! Accurate GC The Red GC relies on allocated memory walking and native stack scanning to identify live Red values. Scanning the native stack can be challenging. The scanner used so far a conservative approach, which is simpler, but can lead to corruptions or crashes in rare cases (e.g. a floating point number being mistaken for a series or node pointer). Moreover, such approach precluded from having a nodes frame GC, as there was no way to accurately identify node pointers on the stack. This is now solved. The plan was always to make it precise when getting closer to a Red v1.0 and that's what we did in this release. In order to achieve that, several key addition

## The case of the vanishing CPU: A Linux kernel debugging story

DevFeed: [The case of the vanishing CPU: A Linux kernel debugging story](<https://devfeed.tech/articles/the-case-of-the-vanishing-cpu-a-linux-kernel-debugging-story-4905.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/a-case-of-the-vanishing-cpu-a-linux-kernel-debugging-story>)

Author: Sergei Trifonov

Published: 2025-03-05T12:18:20Z

Content type: article

Language: en

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

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [incident](<https://devfeed.tech/topics/incident.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [performance](<https://devfeed.tech/tags/performance.md>), [process](<https://devfeed.tech/tags/process.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

A mysterious CPU spike affecting ClickHouse Cloud on GCP led engineers through tracing and debugging into Linux kernel memory-management internals. The investigation uncovered a hidden livelock, produced a reproducible test case and fix, and was followed by the discovery of another kernel bug.

### Source excerpt

Read about how a Linux kernel memory bug led to instability in ClickHouse Cloud on GCP, and the challenges of diagnosing and resolving it.

## Transitioning from C and C++ to Rust: A Beginner's Guide

DevFeed: [Transitioning from C and C++ to Rust: A Beginner's Guide](<https://devfeed.tech/articles/transitioning-from-c-and-c-to-rust-a-beginner-s-guide-22268.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/transitioning-from-c-and-c++-to-rust.html>)

Published: 2024-10-29T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [beginner](<https://devfeed.tech/tags/beginner.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-to-rust](<https://devfeed.tech/tags/c-plus-plus-to-rust.md>), [c-to-rust](<https://devfeed.tech/tags/c-to-rust.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [enums](<https://devfeed.tech/tags/enums.md>), [generics](<https://devfeed.tech/tags/generics.md>), [guide](<https://devfeed.tech/tags/guide.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [migrating-from-c-plus-plus-to-rust](<https://devfeed.tech/tags/migrating-from-c-plus-plus-to-rust.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [runtime-errors](<https://devfeed.tech/tags/runtime-errors.md>), [rust](<https://devfeed.tech/tags/rust.md>), [rust-for-c-developers](<https://devfeed.tech/tags/rust-for-c-developers.md>), [rust-for-c-plus-plus-programmers](<https://devfeed.tech/tags/rust-for-c-plus-plus-programmers.md>), [rust-programming](<https://devfeed.tech/tags/rust-programming.md>), [transitioning-from-c-and-c-plus-plus-to-rust-guide](<https://devfeed.tech/tags/transitioning-from-c-and-c-plus-plus-to-rust-guide.md>), [transitioning-from-c-and-c-plus-plus-to-rust-tutorial](<https://devfeed.tech/tags/transitioning-from-c-and-c-plus-plus-to-rust-tutorial.md>), [transitioning-to-rust](<https://devfeed.tech/tags/transitioning-to-rust.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

A beginner's guide to transitioning from C and C++ to Rust, focusing on Rust's ownership and borrowing model, compile-time memory-safety checks, and type-system features such as enums, pattern matching, and generics.

### Source excerpt

Introduction: As you embark on the journey from C or C++ to Rust, you'll discover a world of exciting possibilities. Rust's emphasis on safety, concurrency, and performance can significantly enhance your programming toolkit. This beginner's guide on transitioning from C and C++ to Rust will provide a structured approach to making that transition, addressing essential concepts and practical applications. Let's dive in! Step 1: Understanding Rust's Ownership Model Concept Overview: Rust's ownership model is its most distinctive feature. Unlike C and C++, where you have pointers and manual memory management, Rust uses a system of ownership with rules that the compiler checks at compile time.

## 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...

## Identifying insecure C Code with Valgrind and fixing with Snyk Code

DevFeed: [Identifying insecure C Code with Valgrind and fixing with Snyk Code](<https://devfeed.tech/articles/identifying-insecure-c-code-with-valgrind-and-fixing-with-snyk-code-7966.md>)

Original publisher: [Read original article](<https://snyk.io/blog/identifying-insecure-c-code-valgrind/>)

Author: Liran Tal

Published: 2024-09-24T05:00:00Z

Content type: tutorial

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Security](<https://devfeed.tech/topics/security.md>), [snyk-code](<https://devfeed.tech/topics/snyk-code.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [c-cpp](<https://devfeed.tech/tags/c-cpp.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [docker](<https://devfeed.tech/tags/docker.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [programming](<https://devfeed.tech/tags/programming.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This tutorial explains how insecure C and C++ code can introduce memory leaks and other vulnerabilities, and describes using Valgrind and Snyk Code's static code analysis to identify and fix them. It also discusses dynamic memory allocation, memory exhaustion, and relevant MISRA guidance.

### Source excerpt

Discover how to secure your C and C++ code with Snyk. Learn about common vulnerabilities like memory leaks and buffer overflows in C and C++ and how Snyk's static code analysis tool can help you identify and fix them. Protect your critical software from security threats.

## ICFP 2024

DevFeed: [ICFP 2024](<https://devfeed.tech/articles/icfp-2024-20181.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/icfp-2024-index/>)

Author: Nailen Matschke

Published: 2024-08-29T00: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>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [conference](<https://devfeed.tech/tags/conference.md>), [functional](<https://devfeed.tech/tags/functional.md>), [language](<https://devfeed.tech/tags/language.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [talks](<https://devfeed.tech/tags/talks.md>)

### AI overview

Jane Street previews its participation in ICFP 2024 and discusses OCaml work on type-system features, code generation, register allocation, inlining, memory management, and parallel programming. It also describes plans to upstream compiler extensions and provide a bleeding-edge opam repository for testing them.

### Source excerpt

It's no secret that Jane Street is an active participant in the programming language community, and we're excited to be attending ICFP 2024, the International Conference on Functional Programming, in Milan next week! Most members of our OCaml Language team will be there, and as usual, we look forward to sharing our work with the wider community. Please see below for a full list of papers and talks that Jane Street folk are involved in. Note that a lot of these are collaborations of one kind or another with researchers outside of Jane Street.

## 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

## Resource Management in Aurora Serverless

DevFeed: [Resource Management in Aurora Serverless](<https://devfeed.tech/articles/resource-management-in-aurora-serverless-12560.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2024/07/29/aurora-serverless.html>)

Author: Marc Brooker

Published: 2024-07-29T00: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: [Amazon Aurora](<https://devfeed.tech/topics/amazon-aurora.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [amazon-aurora](<https://devfeed.tech/tags/amazon-aurora.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cost](<https://devfeed.tech/tags/cost.md>), [databases](<https://devfeed.tech/tags/databases.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [latency](<https://devfeed.tech/tags/latency.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [performance](<https://devfeed.tech/tags/performance.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

The article explains how Amazon Aurora Serverless manages database resources as workloads change. It focuses on in-place scaling, cost and performance effects, uninterrupted connections and transactions, and the memory-management challenges of preserving database working sets and cache performance.

### Source excerpt

Resource Management in Aurora Serverless Systems, big and small. My favorite thing about distributed systems is how they allow us to solve problems at multiple levels: single process problems, single machine problems, multi-machine problems, and large-scale cluster problems. Our new paper Resource management in Aurora Serverless1 describes what this looks like in context of a large-scale running system: Amazon Aurora Serverless. What is Aurora Serverless? Aurora Serverless (or, rather, Aurora Serverless V2 for reasons the paper explains) allows Amazon Aurora databases to scale in place as their workload changes, reducing costs, simplifying operations, and improving performance for customers with cyclical, seasonal, or organically growing workloads. Here's one example of what that looks like: Notice how the size of the database (ACU allocation) grows and shrinks with the workload. It does that without disrupting connections, while transactions are running, and while keeping all session state. In this example there is some latency impact, but its small compared to what would have been achievable with manual scaling (and even smaller than the impact of having an under-sized database for the peaks). Managing memory is what makes this a truly interesting systems problem. Traditional relational database engines are highly dependent on high local cache hit rates for performance. Aurora is slightly less so, but having the core working set3 in cache is still important for good OLTP performance. Working sets grow and shrink, and change, with changing access patterns. Scaling a database while offering good performance requires a careful and deep understanding of the size and occupancy of working sets, and careful management to ensure that the optimal amount of memory is available to store them. Lowest Level: Hypervisor, Kernel, and DB Engine By default, both Linux and database engines like Postgres and MySQL have a hungry hungry hippo approach to memory management: they assume

## Ep. 1: Defending Against Memory Breaches: Exploring Rust and Go's Safety Mechanisms

DevFeed: [Ep. 1: Defending Against Memory Breaches: Exploring Rust and Go's Safety Mechanisms](<https://devfeed.tech/articles/ep-1-defending-against-memory-breaches-exploring-rust-and-go-s-safety-mechanisms-22277.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/15/defending-against-memory-breaches-exploring-rust-and-go-safety-mechanisms-ep-1.html>)

Published: 2024-04-15T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [concurrent-programming](<https://devfeed.tech/tags/concurrent-programming.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [languages](<https://devfeed.tech/tags/languages.md>), [memory-breaches](<https://devfeed.tech/tags/memory-breaches.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [rust](<https://devfeed.tech/tags/rust.md>), [safety](<https://devfeed.tech/tags/safety.md>), [safety-mechanism](<https://devfeed.tech/tags/safety-mechanism.md>), [security](<https://devfeed.tech/tags/security.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>)

### AI overview

This introductory video examines memory safety in programming languages, focusing on Rust and comparing its approach with Go, Java, and C. It discusses buffer overflows, memory leaks, data races, static analysis, checked arithmetic, and the trade-offs between safety and performance.

### Source excerpt

Introduction: Rust's memory safety features are advantageous to Rust developers because they: Ensure robust protection against buffer overflows and underflows, enhancing the reliability and security of software. Empower developers to manage type coercion effectively, promoting code reliability and safety while facilitating safe type conversions. Provide confidence in writing concurrent code by enforcing strict mutability rules and synchronization, thereby preventing data race issues and ensuring code correctness and efficiency. With these memory safety features deeply integrated into Rust's design, developers can build more reliable, secure, and efficient software, spanning various aspects of memory management, type handling, and concurrent programming paradigms.

## How to validate memory-intensive workloads scale in the cloud

DevFeed: [How to validate memory-intensive workloads scale in the cloud](<https://devfeed.tech/articles/how-to-validate-memory-intensive-workloads-scale-in-the-cloud-11645.md>)

Original publisher: [Read original article](<https://www.gremlin.com/blog/how-to-validate-memory-intensive-workloads-in-the-cloud>)

Author: Andre Newman

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

Content type: tutorial

Language: en

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

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Software](<https://devfeed.tech/topics/software.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [chaos-engineering](<https://devfeed.tech/tags/chaos-engineering.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cost](<https://devfeed.tech/tags/cost.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [scale](<https://devfeed.tech/tags/scale.md>), [server](<https://devfeed.tech/tags/server.md>), [software](<https://devfeed.tech/tags/software.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how to size and manage memory for cloud workloads. It covers the relationship between memory, process capacity, reliability, cloud compute cost, provisioning assumptions, and scaling, with AWS memory-optimized instances as an example.

### Source excerpt

Managing memory usage in cloud workloads is challenging. Learn how to determine your memory and RAM requirements, how to autoscale based on memory usage, and how to ensure you're ready for high-traffic events using Gremlin.

## 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.

## Overcoming KMM's Early Adopter Blues - Samuel Hill

DevFeed: [Overcoming KMM's Early Adopter Blues - Samuel Hill](<https://devfeed.tech/articles/overcoming-kmm-s-early-adopter-blues-samuel-hill-38307.md>)

Original publisher: [Read original article](<https://touchlab.co/overcoming-kmms-early-adopter-blues>)

Published: 2022-10-04T20:12:22Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin multiplatform mobile](<https://devfeed.tech/topics/kotlin-multiplatform-mobile.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [adoption](<https://devfeed.tech/tags/adoption.md>), [challenges](<https://devfeed.tech/tags/challenges.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [development](<https://devfeed.tech/tags/development.md>), [featured](<https://devfeed.tech/tags/featured.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [migration](<https://devfeed.tech/tags/migration.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

The article reviews challenges faced by early Kotlin Multiplatform Mobile adopters, including difficult project setup, library integration, and the legacy memory model. It describes Touchlab's KaMPKit and Stately efforts and notes JetBrains' subsequent project and memory-model improvements, before introducing challenges for larger production teams.

### Source excerpt

As we approach a Kotlin Multiplatform Mobile Beta, we take a look back at some of the challenges and missteps early KMM adoption had to overcome.

## Apollo Router: our GraphQL Federation runtime in Rust

DevFeed: [Apollo Router: our GraphQL Federation runtime in Rust](<https://devfeed.tech/articles/apollo-router-our-graphql-federation-runtime-in-rust-23210.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-router-our-graphql-federation-runtime-in-rust>)

Author: Jesse Rosenberger

Published: 2021-11-10T11:15:00Z

Content type: release

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Critical Infrastructure](<https://devfeed.tech/topics/critical-infrastructure.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [critical-infrastructure](<https://devfeed.tech/tags/critical-infrastructure.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [graphql-federation](<https://devfeed.tech/tags/graphql-federation.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [rust](<https://devfeed.tech/tags/rust.md>), [stateless](<https://devfeed.tech/tags/stateless.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

Apollo introduces the Apollo Router, a next-generation GraphQL Federation runtime written in Rust. The article describes its standalone, multithreaded design and reports early benchmarks showing less than 10 ms of added latency per operation and up to eight times the load capacity of the JavaScript Apollo Gateway.

### Source excerpt

At Apollo, we help developers power the world's most important applications with a graph. Whether you're shopping online, booking travel, or binge-watching your favorite movies, you're using the graph every day. These experiences are all built on Apollo Federation, an architecture for declaratively composing GraphQL APIs into a unified graph.

## 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.

## How to Debug Node.js Segmentation Faults

DevFeed: [How to Debug Node.js Segmentation Faults](<https://devfeed.tech/articles/how-to-debug-node-js-segmentation-faults-19065.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/how-to-debug-node-segfaults/>)

Author: HTTP Toolkit; Tim Perry

Published: 2020-08-12T11:20:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [debug](<https://devfeed.tech/topics/debug.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [cors](<https://devfeed.tech/tags/cors.md>), [crash](<https://devfeed.tech/tags/crash.md>), [debug](<https://devfeed.tech/tags/debug.md>), [exception](<https://devfeed.tech/tags/exception.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [js](<https://devfeed.tech/tags/js.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [process](<https://devfeed.tech/tags/process.md>)

### AI overview

A practical guide to understanding and debugging Node.js segmentation faults. It explains that segfaults occur when a process violates operating-system memory-access rules, often involving invalid memory addresses, pointers, buffer or stack overflows, and native code such as native addons.

### Source excerpt

Oh no, your JavaScript code isn't just throwing an exception or crashing: it's segfaulting. What does that mean, and how can you fix it? You'll know this happens because node will hard crash, exiting silently without any kind of real stack trace, perhaps printing just segmentation fault (core dumped). (If you do get a normal JavaScript stack trace on the other hand, then you're dealing with a normal JS error, not a segfault. Lucky you! You might be more interested in the guide on How to Debug Anything) What is a Segmentation Fault? A segmentation fault occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed (for example, attempting to write to a read-only location, or to overwrite part of the operating system). - wikipedia.org/wiki/Segmentation_fault In practice, a segfault occurs when your program breaks some fundamental rule set by the operating system. In that case, the operating system sends your process a signal (SIGSEGV on Mac & Linux, STATUS_ACCESS_VIOLATION on Windows), and typically the process shuts down immediately. The rules that you can break to cause this include things like reading or writing to an invalid memory address (e.g. native code somewhere trying to use a null pointer as a memory address), causing a stack or buffer overflow, or reading or writing from memory that's not yours (maybe it was yours but it's now been released, maybe it's unused, or maybe it's owned by another process or the operating system). All of these cases involve low-level concerns, like pointers & memory management. You shouldn't normally have to worry about this when writing JavaScript! The language runtime normally manages your memory, doesn't expose the kinds of APIs that could cause these issues, and enforces its own rules on the APIs that are available, to guarantee that your code behaves correctly. That all ensures that the underlying operating system's rules are

## Interacting between C libraries and Go using Unsafe

DevFeed: [Interacting between C libraries and Go using Unsafe](<https://devfeed.tech/articles/interacting-between-c-libraries-and-go-using-unsafe-39615.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2020-06-11_Interacting-between-C-libraries-and-Go-using-Unsafe-cb8b460d4f0c>)

Published: 2020-06-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [go](<https://devfeed.tech/tags/go.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [snippet](<https://devfeed.tech/tags/snippet.md>), [system-programming](<https://devfeed.tech/tags/system-programming.md>)

### AI overview

This tutorial explains how to reuse C library data structures and methods from Go using the unsafe package. It discusses differences between C and Go memory management, converting C strings and pointers, and casting C data into corresponding Go structures.

### Source excerpt

Suppose we have a C lib where we have defined various data structures and methods. Due to some reason or constraint, there needs to be a Golang process which has to reuse the structures mentioned in the C lib...

[Next page](<https://devfeed.tech/tags/memory-management.md?cursor=WyIyMDIwLTA2LTExVDAwOjAwOjAwKzAwOjAwIiwgIjBmNDI0YmFiLWY3ZjctNDI5MC1hMWJmLWE5Y2I3ZjJkZjdmOSJd>)