13 repositorios
Guidelines regarding when and how to optimize software performance.
Explore 13 awesome GitHub repositories matching software engineering & architecture · Performance Optimization Principles. Refine with filters or upvote what's useful.
This repository is a comprehensive collection of data structures and algorithms implemented in JavaScript, designed primarily as an educational resource for computer science study and technical interview preparation. It provides modular implementations of fundamental programming concepts, allowing developers to explore algorithmic logic and data organization through self-contained, verifiable code examples. The library distinguishes itself by pairing every implementation with formal Big O notation, providing predictable insights into time and space scaling requirements. Each algorithm is stru
Analyzes time and space complexity to ensure efficient data processing and predictable scaling.
LeetCode-Go is a competitive programming repository and Go algorithm library. It provides a collection of optimized solutions for LeetCode challenges, focusing on time and space complexity. The project serves as a reference for data structures and algorithms implemented in Go. It covers algorithm problem solving and performance optimization to meet strict memory and runtime constraints. The repository includes capabilities for technical interview preparation and the application of Go language idioms to complex computing problems. Each solution is paired with a test suite to verify correctnes
Optimizes algorithm runtime and memory usage for computationally intensive programming tasks.
Ciphey is an automated decryption and data obfuscation tool designed to identify and reverse complex, multi-layered encoding schemes. By utilizing statistical analysis and probability scoring, the system automatically detects unknown data formats and recovers human-readable plaintext from obfuscated input strings without requiring manual algorithm specification. The tool distinguishes itself through a recursive pipeline that processes nested data structures and strips formatting anomalies or invisible characters to ensure consistent input. It employs a heuristic search and multithreaded execu
Optimizes decryption speed by combining multithreading with heuristic search algorithms.
This project is a comprehensive container framework for Go that provides a suite of fundamental data structures and algorithms. It offers a standardized set of tools for managing, sorting, and traversing complex data collections, enabling developers to implement efficient storage and retrieval logic within their applications. The library distinguishes itself through an interface-driven design that allows for interchangeable use of different storage implementations. It supports custom ordering and sorting behavior through external comparison functions, which decouple the data structures from s
Provides optimized algorithmic implementations for search, sort, and traversal to ensure high performance.
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
Offers techniques for analyzing and improving the time and space complexity of algorithms to prevent degradation.
EASTL is a C++ Standard Template Library implementation consisting of containers, iterators, and algorithms. It provides cross-platform data structures and a template-based algorithm library designed for use in resource-constrained game engine environments. The library focuses on game engine memory management, providing specialized utilities that ensure predictable memory allocation and high-performance access for real-time applications. These containers maintain consistent behavior across different operating systems and hardware platforms. The project covers high-performance C++ development
Implements optimized routines for performing complex computations and transformations on data collections.
This project is a comprehensive knowledge base and study resource designed for mastering technical interviews. It provides structured guides, roadmaps, and curricula focused on data structures, algorithms, system design, and frontend engineering to help candidates prepare for software engineering screenings. The repository distinguishes itself by offering a holistic approach to professional advancement. Beyond technical drills, it includes a career development handbook covering resume optimization, salary benchmarking, and strategic negotiation coaching. It also provides detailed methodologie
Guides the use of dynamic programming and optimal data structures to improve time and space complexity.
kafka-python is a pure-Python client library for Apache Kafka that implements the Kafka wire protocol directly, without any native bindings or JVM dependencies. It provides the core capabilities of a Kafka client: producing messages to topics, consuming records from topics, and administering cluster resources such as topics and partitions, all through a Pythonic API or command-line tools. The library distinguishes itself through its comprehensive support for advanced Kafka features. It includes an asynchronous producer with background batching for throughput, a consumer group rebalance protoc
Offloads CRC32C checksum calculation to an optimized C library to reduce CPU overhead.
rsync is a file synchronization and transfer tool that copies data between local and remote systems by sending only the differences between source and destination files. It computes matching blocks using checksums, so only the unmatched portions of files are transmitted, making repeated synchronizations much faster than full copies. The tool preserves file metadata such as ownership, permissions, and modification times during transfers. rsync supports multiple transfer methods, including direct connections through a dedicated daemon mode or via remote shells like SSH. It can mirror directory
Identifies matching blocks between source and destination using checksums, so only unmatched parts are transmitted.
oneDNN es una biblioteca para la aceleración del aprendizaje profundo que proporciona bloques de construcción optimizados para el entrenamiento e inferencia de redes neuronales. Gestiona la computación de tensores a través de hardware CPU y GPU, permitiendo la ejecución de primitivas de alto rendimiento para el entrenamiento de modelos y la optimización de la inferencia de redes neuronales. El proyecto se distingue por la optimización de kernels específica para el hardware y el uso de compilación just-in-time para apuntar a conjuntos de instrucciones de procesador específicos. Soporta la ejecución de redes neuronales cuantizadas utilizando cuantización estática y dinámica para reducir el uso de memoria y aumentar el rendimiento. La biblioteca cubre una amplia gama de capacidades, incluyendo primitivas de aprendizaje profundo como convoluciones, multiplicación de matrices y ejecución de redes neuronales recurrentes. Implementa optimizaciones de rendimiento avanzadas, incluyendo fusión de operaciones, optimización de grafos de computación y gestión de formatos de memoria. La integración se proporciona a través de una ABI C estable y un wrapper C++, con soporte para SYCL, OpenCL y bibliotecas de álgebra lineal externas. El sistema incluye herramientas de observabilidad para la creación de perfiles de rendimiento de hardware, benchmarking de primitivas y registro de ejecución detallado.
Selects between direct, Winograd, or implicit GEMM implementations to balance performance, memory, and numerical accuracy.
Este repositorio sirve como un recurso educativo para conceptos de ciencias de la computación, proporcionando una colección de estructuras de datos fundamentales y patrones algorítmicos implementados en Python. Funciona como una referencia de programación para desarrolladores que buscan comprender los patrones estándar de ingeniería de software y las estrategias de manipulación de datos. El proyecto se centra en la construcción de formatos de almacenamiento esenciales, incluyendo arreglos, grafos, tablas hash, listas enlazadas, pilas y colas. También proporciona implementaciones para técnicas algorítmicas estándar como programación dinámica, recursión, ordenamiento y recorridos de grafos. Al organizar la información en contenedores lógicos y aplicar mapeo matemático, la biblioteca demuestra cómo gestionar los datos de manera efectiva mientras se evalúa la eficiencia de la lógica computacional a través del análisis de complejidad. Más allá de la implementación básica, el repositorio admite la optimización del rendimiento del software ayudando a los usuarios a seleccionar estructuras y algoritmos apropiados para tareas específicas. Está estructurado para ayudar con la preparación de entrevistas técnicas ofreciendo un conjunto completo de ejemplos que abordan desafíos de codificación comunes y conceptos computacionales centrales.
Teaches techniques for analyzing and improving the time and space complexity of algorithms.
Este proyecto es un recurso educativo que proporciona un plan de estudios estructurado para dominar conceptos fundamentales de ciencias de la computación, lógica algorítmica e implementación de estructuras de datos usando Python. Sirve como un tutorial integral para comprender cómo organizar la información de manera efectiva y resolver desafíos computacionales complejos a través de técnicas de programación sistemáticas. El repositorio se centra en la aplicación práctica de estructuras de datos centrales, incluyendo arreglos, listas enlazadas, tablas hash, pilas, colas y árboles. Enfatiza el desarrollo de habilidades de resolución de problemas algorítmicos cubriendo métodos estándar para ordenar colecciones y buscar elementos específicos, junto con técnicas para analizar la complejidad temporal y espacial del código. Más allá de la implementación básica, el material aborda conceptos computacionales fundamentales como la lógica recursiva, el recorrido iterativo y la gestión de memoria. Estos recursos están diseñados para apoyar la preparación técnica para entrevistas de ingeniería de software proporcionando ejercicios que demuestran cómo construir sistemas de datos eficientes y optimizar el rendimiento para aplicaciones escalables. El contenido se entrega a través de una serie de Jupyter Notebooks que combinan explicaciones teóricas con ejemplos de codificación prácticos.
Teaches techniques for analyzing and improving the time and space complexity of code.
Este proyecto es una guía de referencia completa para fundamentos de ciencias de la computación, proporcionando resúmenes estructurados de estructuras de datos esenciales y principios algorítmicos. Sirve como un recurso técnico para que los desarrolladores repasen conceptos básicos de programación, layouts de memoria y características operativas requeridas para el desarrollo de software y evaluaciones técnicas. La colección se distingue por ofrecer documentación concisa y enfocada en la implementación para una amplia gama de técnicas estándar. Cubre la mecánica de varios algoritmos de ordenamiento y búsqueda, estrategias de recorrido de grafos y árboles, y la gestión de estructuras de datos fundamentales como tablas hash, listas enlazadas y heaps. Cada entrada incluye un análisis de complejidad computacional para ayudar a los desarrolladores a evaluar el rendimiento y la escalabilidad de diferentes enfoques. El repositorio organiza esta información en archivos markdown estáticos, facilitando la navegación rápida y la revisión de temas técnicos. Abarca una amplia superficie de conocimiento, desde patrones de diseño recursivos básicos y paradigmas algorítmicos hasta la lógica operativa específica requerida para mantener y manipular jerarquías de datos complejas.
Provides analysis of time and memory requirements to evaluate algorithm scalability.