7 Repos
The practice of optimizing code based on the analysis of processor disassembly and machine code generation.
Distinct from Code Optimization: Distinct from general Code Optimization: specifically focuses on the low-level machine code and compiler behavior rather than high-level source refactoring.
Explore 7 awesome GitHub repositories matching software engineering & architecture · Low-Level Machine Code Optimizations. Refine with filters or upvote what's useful.
This project is a comprehensive technical guide to advanced Go programming. It serves as a programming guide, technical reference, and textbook covering low-level optimization and distributed systems architecture. The resource provides detailed instructions on writing assembly instructions to optimize performance-critical code and managing C-Go interoperability to bridge C libraries with Go. It also functions as a manual for implementing remote procedure call mechanisms and creating custom plugins for the Protocol Buffers compiler. The material covers high-level capabilities including the de
Provides detailed instructions on writing low-level CPU instructions to optimize performance-critical code sections.
Compiler Explorer is an online tool and analysis platform used to translate source code into assembly in real time. It functions as a cross-compiler analysis tool, allowing users to examine how various compilers and versions translate the same source code into machine code to analyze optimizations and generation patterns. The platform supports low-level language debugging and the comparison of assembly output across different compiler toolchains. It also provides a self-hosted environment option for users who need to run private deployments with custom binaries or operate within secure offlin
Verifies final machine code to identify performance bottlenecks or unexpected compiler behavior.
BenchmarkDotNet is a library and tool suite for measuring the execution time and memory allocation of .NET code. It utilizes statistical sampling and warm-up iterations to determine the stability and precise execution speed of specific methods. The project provides a JIT disassembly viewer to inspect processor disassembly and analyze how the compiler executes code paths. It includes a memory allocation profiler that tracks managed and native memory traffic to identify efficiency bottlenecks. Additionally, a runtime performance comparator allows the same benchmarks to be executed across differ
Analyzes processor disassembly and machine code to understand how the compiler optimizes specific execution paths.
This project is a collection of educational resources and technical guides focused on Go performance optimization. It provides instruction on improving execution speed and reducing memory usage through code and architectural refinements. The guides cover advanced strategies for low-level programming, including the use of assembly for SIMD instructions and unsafe pointers for direct memory manipulation. It also details concurrency optimization techniques such as lock sharding and cache-line padding to reduce contention and improve hardware utilization. The material encompasses broad capabilit
Provides advanced strategies for using unsafe pointers and assembly to optimize hardware cache and SIMD usage.
LuaJIT ist eine hochperformante Lua-Sprachimplementierung und ein Just-in-Time-Compiler. Es fungiert als eingebettete Skript-Engine und dynamischer Binär-Übersetzer, der portablen Bytecode während der Ausführung in nativen Maschinencode umwandelt. Das Projekt konzentriert sich auf hochperformantes Skripting durch die Übersetzung von Bytecode in architekturspezifische Anweisungen, um Ausführungsgeschwindigkeiten nahe an kompiliertem C-Code zu erreichen. Es nutzt eine leichtgewichtige Laufzeitumgebung, die auf minimalen Speicher-Overhead ausgelegt ist. Das System unterstützt die Verarbeitung binärer Daten mittels bitweiser Operationen und ermöglicht asynchrones Task-Management durch die Integration von C-Coroutines. Es bietet zudem Funktionen für die Laufzeit-Codegenerierung und die Erstellung benutzerdefinierter Maschinencode-Anweisungen.
Identifies frequently executed linear code paths and compiles them into optimized machine code sequences.
Hotspot ist eine grafische Benutzeroberfläche zur Analyse und Visualisierung von Performance-Daten, die mit dem Linux-Tool perf erfasst wurden. Es fungiert als Performance-Profiling-Visualisierer und Assembly-Level-Profiler, der Performance-Kosten auf spezifische Instruktionen abbildet, die mit dem ursprünglichen Quellcode synchronisiert sind. Das Projekt zeichnet sich durch einen Remote-Symbol-Resolver aus, der Performance-Daten von eingebetteten Zielen auf lokale Host-Debug-Symbole und Sysroots abbildet. Es enthält zudem ein spezialisiertes Off-CPU-Analysetool, das entwickelt wurde, um Thread-Wartezeiten und I/O-Blöcke mithilfe von Kernel-Scheduler-Tracepoints zu identifizieren. Das Tool deckt ein breites Spektrum an Performance-Analysefunktionen ab, einschließlich CPU-Profiling, Low-Level-Code-Inspektion und zeitlinienbasierter Datenfilterung. Es bietet Visualisierungsmethoden wie Flame-Graphs und Call-Graphs, um Systemengpässe und inlinte Funktionen zu identifizieren. Das System unterstützt die Datenaufzeichnung durch das Starten von Profiling-Tools für neue Anwendungen oder das Anhängen an bestehende Prozesse und ermöglicht den Export analysierter Performance-Profile in portable Formate für den Austausch zwischen Maschinen.
Enables optimization of critical paths by examining the cost of individual assembly instructions synchronized with source code.
BASIC-M6502 ist eine BASIC-Sprachimplementierung für 8-Bit-Mikroprozessoren. Sie bietet eine Ausführungsumgebung, die es ermöglicht, Programme, die in einer High-Level-Sprache geschrieben sind, auf 6502-Hardware auszuführen, inklusive Unterstützung für mathematische Funktionen und Fließkomma-Arithmetik. Das Projekt ist für Cross-Plattform-Hardware-Portierung konzipiert und nutzt bedingte Kompilierung und Makros, um eine einzige Codebasis an verschiedene Retrocomputing-Systeme anzupassen. Es verwendet Hardware-Abstraktionsschichten, um zeichenbasierte Ein- und Ausgaberoutinen zu verwalten. Das System umfasst eingebettetes Speichermanagement mit dynamischer Allokation und Mark-and-Sweep-Garbage-Collection für Strings und Variablen. Es bietet zudem Primitive für String- und Array-Manipulation und nutzt Software-Emulation für Fließkommaoperationen.
Produces efficient assembly code tailored for specific hardware platforms using a macro system and conditional compilation.