8 dépôts
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 8 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 est une implémentation haute performance du langage Lua et un compilateur juste-à-temps (JIT). Il fonctionne comme un moteur de script embarqué et un traducteur binaire dynamique qui convertit le bytecode portable en code machine natif pendant l'exécution. Le projet se concentre sur le scripting haute performance en traduisant le bytecode en instructions spécifiques à l'architecture pour atteindre des vitesses d'exécution proches du code C compilé. Il utilise un environnement d'exécution léger conçu pour une surcharge mémoire minimale. Le système prend en charge le traitement de données binaires via des opérations bit à bit et permet la gestion de tâches asynchrones grâce à l'intégration de coroutines C. Il fournit également des capacités pour la génération de code à l'exécution et la création d'instructions machine personnalisées.
Identifies frequently executed linear code paths and compiles them into optimized machine code sequences.
Hotspot est une interface utilisateur graphique pour analyser et visualiser les données de performance capturées par l'outil Linux perf. Il fonctionne comme un visualiseur de profilage de performance et un profileur au niveau de l'assembleur qui mappe les coûts de performance à des instructions spécifiques synchronisées avec le code source original. Le projet se distingue par un résolveur de symboles distant qui mappe les données de performance des cibles embarquées vers les symboles de debug de l'hôte local et les sysroots. Il inclut également un outil d'analyse off-CPU spécialisé conçu pour identifier les temps d'attente des threads et les blocages I/O en utilisant les tracepoints du planificateur du noyau. L'outil couvre un large éventail de capacités d'analyse de performance, incluant le profilage CPU, l'inspection de code bas niveau et le filtrage de données basé sur la chronologie. Il fournit des méthodes de visualisation telles que les flame graphs et les call graphs pour identifier les goulots d'étranglement du système et les fonctions inlinées. Le système supporte l'enregistrement de données en lançant des outils de profilage pour de nouvelles applications ou en s'attachant à des processus existants, et permet l'export des profils de performance analysés dans des formats portables pour un partage inter-machines.
Enables optimization of critical paths by examining the cost of individual assembly instructions synchronized with source code.
BASIC-M6502 est une implémentation du langage BASIC pour microprocesseurs 8 bits. Il fournit un environnement d'exécution qui permet aux programmes écrits dans un langage de haut niveau proche de l'anglais de s'exécuter sur du matériel 6502, avec un support pour les fonctions mathématiques et l'arithmétique en virgule flottante. Le projet est conçu pour le portage matériel multiplateforme, utilisant la compilation conditionnelle et des macros pour adapter une base de code unique à travers différents systèmes de retrocomputing. Il utilise des couches d'abstraction matérielle pour gérer les routines d'entrée et de sortie basées sur les caractères. Le système inclut une gestion mémoire intégrée avec allocation dynamique et ramasse-miettes (garbage collection) de type mark-and-sweep pour les chaînes et les variables. Il fournit également des primitives pour la manipulation de chaînes et de tableaux et emploie une émulation logicielle pour les opérations en virgule flottante.
Produces efficient assembly code tailored for specific hardware platforms using a macro system and conditional compilation.
perf-ninja is a collection of educational resources and curricula focused on CPU architecture, memory hierarchies, SIMD programming, and low-level performance engineering. It provides instructional material and practical labs for identifying and fixing CPU bottlenecks, such as cache misses and branch mispredictions. The project differentiates itself through specialized training in hardware-level optimizations, including the use of compiler intrinsics for SIMD vectorization and the implementation of branchless predicate execution to eliminate pipeline stalls. It also covers advanced binary-lev
Offers an educational program for optimizing software to utilize hardware features like CPU caches and SIMD.