Conception d'un Allocateur Mémoire Haute Concurrence en C++
Présentation du système d'allocation mémoire
Ce projet implémente un allocateur mémoire optimisé pour environnements multithreads, inspiré de tc-mimic (Thread-Caching Malloc). Il remplace les fonctions standard malloc et free pour améliorer l'efficacité et réduire la fragmentation.
Prérequis techniques
Programmation C/C++ avancée
Structures de ...
Publié le 27 juillet à 10h11
Gestion des blocs de contrôle multiples lors de la création de shared_ptr à partir de this en C++
La création directe d'un std::shared_ptr à partir du pointeur this au sein d'une classe peut entraîner la création de blocs de contrôle de référence distincts, manant à des suppressions multiples et à un comportement indéfini.
class MaClasse {
public:
void partager() {
std::shared_ptr<MaClasse> ptr_partage(this); // Dangereux ...
Publié le 24 juillet à 08h29
Gestion de la mémoire managée et non managée en C#
Le langage C# intègre un mécanisme de gestion automatique de la mémoire, le Garbage Collector (GC), qui alloue et désalloue la mémoire dite "managée". La majorité du temps, les développeurs C# évoluent dans cet environnement et n'ont pas à se soucier de la libération explicite des ressources. Cependant, dans certains scénarios, notamm ...
Publié le 14 juillet à 16h53
Différences et utilisation de TList et TObjectList
Unités concernées
TList(Classes.pas)
TObjectList(Contnrs.pas)
Création d'objets TObjectList
Le constructeur de TObjectList accepte un paramètre : constructor TObjectList.Create(AOwnsObjects: Boolean). Son signification est explicite : indique si la liste possède les objets qu'elle contient.
Documentation officielle
Si la propriété OwnsObjects e ...
Publié le 17 juin à 21h31
Gestion de la mémoire dynamique dans uCGUI
La zone du tas pour la mémoire dynamique
/* Définition de l'union pour la zone du tas */
typedef union { /* Permet d'accéder au tas par blocs de 4 octets ou octet par octet */
int tableauHeap[GUI_ALLOC_SIZE / 4]; /* Assure un alignement correct */
U8 octetsHeap[GUI_ALLOC_SIZE];
} GUI_HEAP;
/* Données représentant le tas */
GUI_ME ...
Publié le 14 juin à 00h09
Concevoir et implémenter un tableau dynamique en C++
La gestion des tableaux en C++ peut être délicate, surtout lorsque leur taille doit varier pendant l'exécution du programme. Bien que la bibliothèque standard offre des conteneurs comme std::vector, comprendre les mécanismes sous-jacents est fondamental pour maîtriser la programmation système et la gestion de la mémoire. Cet article explore la ...
Publié le 10 juin à 17h13