2009-11-24

Go Data Structures Posted on Tuesday, November 24, 2009.

A detailed explanation of Go programming language's memory representation and data structures, covering basic types, structs, arrays, and slices. The content explores how Go gives programmers control over memory layout and pointers, differentiating it from languages like Java, while explaining the efficiency considerations behind these design choices.

Original archive.is archive.ph web.archive.org

Log in to get one-click access to archived versions of this article.

Related articles

3,200% CPU Utilization

An in-depth analysis of a critical Java performance issue where unprotected concurrent TreeMap modifications led to 3,200% CPU utilization. The investigation revealed how thread interleaving can create infinite loops in red-black trees, with experiments across multiple programming languages demonstrating similar vulnerabilities.

asm-lessons/lesson_01/index.md at main · FFmpeg/asm-lessons

A comprehensive guide to FFmpeg assembly language programming, focusing on SIMD operations and vector processing for multimedia optimization. The lesson covers basic concepts, register types, and instruction syntax while explaining how hand-written assembly can achieve significant performance improvements over compiler optimizations.

Do You Really Want to be Doing This When You're 50?

A former programmer reflects on the frustrations of modern software development, highlighting challenges like incomplete domain knowledge, complex APIs, and constant technological evolution. The author expresses preference for small, manageable programming projects while suggesting that high-pressure development may be better suited for younger developers.

Overview - Neut Programming Language

Neut is a functional programming language featuring static memory management without GCs or regions, using a type-directed approach for resource handling. The language supports full λ-calculus and automatic memory management without type system annotations, while offering built-in LSP support and formatter capabilities.

Why Ruby on Rails still matters

A comparison between Ruby on Rails and Next.js frameworks highlights how Rails maintains relevance through simplicity and abstraction, while Next.js enables advanced web capabilities at the cost of complexity. The text draws parallels between vinyl records' longevity and web technologies' evolution, emphasizing how fundamental approaches remain valuable despite technological advancement.

Introduction to CUDA Programming for Python Developers

GPU architecture enables massive parallel processing through thousands of CUDA cores, contrasting with CPU's sequential processing capabilities. CUDA programming provides a platform for developers to harness GPU's parallel power through kernel functions and thread management. The document explores memory management, shared memory optimization, and practical applications in LLM workloads like FlashAttention.

TinyCompiler: a compiler in a week-end

A developer shares their experience building a minimalist compiler called TinyCompiler for a custom programming language 'wend' over a weekend. The project aims to translate 'wend' code into GNU assembly while maintaining a codebase of around 500 lines of Python, serving as an educational exploration of compiler theory.

Announcing Rust 1.85.0 and Rust 2024 | Rust Blog

Rust 1.85.0 introduces the Rust 2024 Edition, featuring significant language changes and improvements including async closures support and expanded tuple operations. The release includes extensive updates to the standard library, Cargo package manager, and development tools like Rustdoc and Rustfmt.

Relaxed Radix Balanced Trees | Peter Horne-Khan

An in-depth exploration of Relaxed Radix Balanced (RRB) Trees explains their implementation for immutable vectors, focusing on efficient merging operations. The data structure combines radix search with size tables to maintain balanced trees while allowing flexible node sizes, offering improved performance over traditional Persistent Vectors.