memory-safety-optimization-patterns
Instructions for memory safety optimization patterns.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
priority: high
Memory Safety & Optimization Patterns
Zero-Copy
-
&stroverString,&[T]overVec<T>in function params -
Cow<T>for conditional ownership (borrow when possible, clone only on mutation) -
Arc<T>for shared immutable data across threads
RAII
Resources released automatically on scope exit via Drop. Mutex/RwLock guards auto-unlock. No manual cleanup needed.
String Handling
-
Cow<str>for conditional String/&str ownership -
Arc<str>for cheap cloning of shared immutable strings -
String::with_capacity()to pre-allocate
Buffer Reuse
-
Vec::clear()+ reuse instead of new allocation - Pre-allocate with
Vec::with_capacity()in hot loops -
SmallVecfor stack-allocated small collections
Lifetimes
- Default to references in function params
- Minimize lifetimes in structs (prefer owned data)
- Use
'_wildcard for unused lifetime bounds
Verification Tools
| Tool | Purpose | Command |
|---|---|---|
| Valgrind | Memory leaks, UAF | valgrind --leak-check=full ./app |
| ASan | Memory errors | RUSTFLAGS="-Z sanitizer=address" cargo +nightly build |
| Miri | Undefined behavior | cargo +nightly miri test |
| Clippy | Lifetime/safety lints | cargo clippy -- -D warnings |
Anti-Patterns
-
Cloneinstead of&T(unnecessary allocation) -
format!()when borrowing suffices - Holding mutex guards across
.awaitpoints -
Box<T>for simple owned data (unnecessary indirection) - No buffer pre-allocation in hot paths
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-03-11
- Mise à jour de l’index
- 2026-03-11
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!