#memory
15 articles about memory
Filtrer par thème
Qu'est-ce que &mut *x (réemprunt) en Rust, et pourquoi gèle-t-il la référence originale ?
Un réemprunt duplique la référence, pas les données, et gèle l'originale le temps de sa durée de vie. Ce que fait vraiment &mut *x.
Emprunts mutables et immutables : les deux règles
Les deux règles d'emprunt, pourquoi l'exclusivité est celle qui compte, et ce que le borrow checker rejette réellement.
Comment Rust gère-t-il les string literals (&str) en termes d'allocation mémoire ? Où vivent-elles ?
Les string literals vivent dans les données en lecture seule du binaire avec une lifetime 'static — ce que ça implique pour l'allocation et la copie.
Quel est le but de Box<T> en Rust ?
À quoi sert Box<T>, ce que coûte l'indirection supplémentaire, et quand l'allocation sur le heap est un vrai choix plutôt qu'un réflexe.
Comment l'ownership prévient-il les memory leaks et data races ?
Comment les règles d'ownership ferment la porte aux fuites mémoire et aux data races avant même l'exécution — et où elles s'arrêtent.
Comment les mécanismes d'Ownership et de Borrowing Assurent une Concurrence Sûre
Ownership et borrowing excluent les data races à la compilation. Ce qu'ajoutent Send et Sync, et pourquoi Rc ne franchit pas un thread.
Comprendre le Trait Drop en Rust
Comment fonctionne le trait Drop, quand le destructeur s'exécute, et pourquoi l'implémenter à la main est plus rare qu'il n'y paraît.
Comment fonctionne Cow<'a, B> (Copy-on-Write) en Rust ? Quand l'utiliser ?
Cow<'a, B> permet d'emprunter quand c'est possible et d'allouer seulement quand il le faut. Comment marche le copy-on-write et quand il est rentable.
Rust repr : Optimiser la Mémoire des Structs pour l'Efficacité Cache
Optimisation mémoire bas niveau en Rust, couvrant les attributs repr, l'efficacité cache, et les compromis de performance
Quelle est la différence entre Box<[T]> et Vec<T> ?
Comparaison des différences entre Box<[T]> et Vec<T> concernant la mutabilité, la surcharge mémoire et les implications de performance pour différents cas d'usage
Stack vs. Heap en Rust: Où Vivent tes Données ?
Ce qui décide réellement qu'une valeur atterrit sur la stack ou sur le heap en Rust, et ce que chaque choix coûte à l'exécution.
Pourquoi &str Ne Rentre Pas dans &String en Rust: Fixes Sympas pour les String Mismatches !
Pourquoi passer un &str là où un &String est attendu ne compile pas, ce que la coercition de déréférencement fait — et ne fait pas.
Qu'est-ce qu'un dangling pointer, et comment Rust le prévient-il au moment de la compilation ?
Pourquoi un dangling pointer est une erreur de compilation en Rust plutôt qu'un crash en production, et comment les lifetimes rendent ce contrôle possible.
Partie 2 : Les langages comme C/C++ ou Zig permettent de contrôler la mémoire mais à quel prix ?
C évite le besoin d'avoir un garbage collector et donne un contrôle manuel de la mémoire, mais ouvre la porte à des bugs dangereux.
Partie 1 : GC Pauses et Latence: Le coût caché des langages de haut niveau
Java, Python et JavaScript offrent de la commodité, mais le garbage collector introduit une latence imprévisible.