6 dépôts
Techniques for reusing existing object instances during deserialization to avoid heap allocations and reduce garbage collection pressure.
Distinct from Connection Object Reuses: None of the candidates address general memory-level object recycling for serialization; candidates are focused on cloud instances or graphics instancing.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Object Instance Reuses. Refine with filters or upvote what's useful.
MemoryPack is a high-performance binary serialization library for C# and Unity. It provides a zero-allocation data pipeline and a schema-evolution framework designed to minimize memory allocations and encoding overhead. The project utilizes compile-time source generators to avoid runtime reflection and implements a zero-encoding binary format for maximum throughput. It distinguishes itself through a zero-allocation approach that reuses object instances to reduce garbage collection pressure and copies the memory layout of unmanaged structs directly to binary streams. The library covers binary
Provides the ability to deserialize data into existing object instances to minimize memory allocations and GC frequency.
This project is a technical study and analysis guide focused on the internal architecture of Node.js. It provides an in-depth examination of the runtime, focusing on how the engine manages memory handles, executes asynchronous operations, and implements core module logic. The guide specifically analyzes the integration of native C++ classes and functions into JavaScript and documents the behavior of the libuv event loop. It includes detailed references for optimizing performance by identifying V8 compiler bailouts and profiling execution to improve resource efficiency. The material covers a
Details the use of object pooling for HTTP parsers to reduce heap allocation and GC pressure.
HandyJSON est une bibliothèque de sérialisation JSON et un mappeur de données pour Swift. Il fonctionne comme un mappeur d'objets qui convertit les données JSON en modèles Swift typés et transforme les objets Swift en chaînes JSON pour le stockage ou la transmission. La bibliothèque utilise la réflexion pour mapper automatiquement les clés JSON aux propriétés d'objets et prend en charge des métadonnées de mappage personnalisées pour résoudre les différences de nommage entre les API et le code. Elle offre des capacités pour extraire des valeurs à partir de chemins profondément imbriqués au sein d'une structure JSON et prend en charge la transformation de types complexes tels que les dates et les URLs. Le framework gère à la fois la désérialisation de JSON en classes et structs structurés et la sérialisation d'objets modèles. Il permet également de mettre à jour des instances d'objets existantes en les remplissant avec des valeurs dérivées de chaînes ou de dictionnaires JSON.
Allows updating existing object instances by populating them with values derived from JSON.
Mapperly est un générateur de code source C# utilisé pour le mappage objet-à-objet haute performance dans .NET. Il fonctionne comme une bibliothèque de mappage à la compilation qui produit le code de transformation nécessaire durant le processus de build, éliminant le besoin de réflexion à l'exécution lors de la conversion entre modèles de domaine et objets de transfert de données (DTO). L'outil se distingue par sa validation diagnostique typée et son application stricte du mappage, émettant des avertissements pour les propriétés non mappées au moment de la compilation. Il inclut des fonctionnalités spécialisées pour la gestion des références circulaires et le clonage profond afin de maintenir l'identité des objets et d'éviter les boucles infinies lors de transformations complexes. Le projet couvre un large éventail de tâches de transformation, y compris l'aplatissement de hiérarchies d'objets imbriquées, la conversion de divers types de collections et de spans, ainsi qu'un mappage complet des énumérations entre chaînes et types primitifs. Il prend également en charge l'intégration de bases de données via la projection de requêtes, traduisant les définitions de mappage en arbres d'expressions pour optimiser la récupération des champs depuis des sources requêtables. Les options de configuration permettent des fabriques d'objets personnalisées, des exclusions au niveau des membres et l'intégration d'une logique de mappage définie par l'utilisateur. Le code source généré peut être exporté vers un répertoire configurable pour inspection manuelle et contrôle de version.
Updates a provided target object instance with source values instead of creating a new instance.
Ce projet est un guide complet de programmation de performance et une référence pour le langage Go, se concentrant sur l'efficacité du runtime et l'optimisation de la mémoire. Il fournit une collection de modèles et de techniques conçus pour augmenter la vitesse d'exécution en réduisant la surcharge du garbage collector et en optimisant l'utilisation de la mémoire. La ressource se distingue par des implémentations de référence détaillées pour l'optimisation mémoire, telles que l'analyse d'échappement (escape analysis), le pooling d'objets et l'alignement mémoire des structures. Elle propose des stratégies spécifiques pour réduire la taille des binaires et améliorer l'efficacité du cache CPU grâce à l'optimisation de la disposition mémoire des structures et à l'utilisation de placeholders sans allocation. Le projet couvre un large éventail de capacités d'ingénierie backend, incluant la gestion de la concurrence avec des pools de workers et des primitives de synchronisation, le routage RPC et HTTP haute performance, et des stratégies de mise en cache distribuée. Il inclut également des conseils sur l'observabilité via le profilage CPU et mémoire, ainsi que des modèles d'assurance qualité pour les tests unitaires fonctionnels et la génération d'objets mock. Le contenu est structuré comme une série de tutoriels, d'exemples architecturaux et de guides de benchmarking pour aider les développeurs à analyser et corriger les goulots d'étranglement de performance.
Implements mechanisms for recycling short-lived objects to reduce heap allocations in high-concurrency environments.
This library is a PHP-based serialization framework designed to convert complex object graphs into structured formats such as JSON, XML, YAML, and CSV, and to reconstruct those objects from serialized data. It functions as a data transformation tool that maps object properties to array structures, facilitating both application state persistence and the exchange of data between systems. The framework distinguishes itself through a two-stage pipeline that normalizes objects into intermediate structures before encoding them into specific formats. It supports advanced mapping requirements, includ
Updates existing object instances with new data during deserialization to facilitate partial updates and state synchronization.