1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-05-14 22:56:44 +02:00

Merge pull request #10 from andrewpollack/patch-8

Minor punctuation update
This commit is contained in:
Martin Geisler 2022-12-22 10:05:08 +01:00 committed by GitHub
commit ed0a11a86b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,31 +4,31 @@ Here is a rough comparison of the memory management techniques.
## Pros of Different Memory Management Techniques ## Pros of Different Memory Management Techniques
* Manual like C * Manual like C:
* No runtime overhead * No runtime overhead.
* Automatic like Java * Automatic like Java:
* Fully automatic * Fully automatic.
* Safe and correct * Safe and correct.
* Scope-based like C++ * Scope-based like C++:
* Partially automatic * Partially automatic.
* No runtime overhead * No runtime overhead.
* Compiler-enforced scope-based like Rust * Compiler-enforced scope-based like Rust:
* Enforced by compiler * Enforced by compiler.
* No runtime overhead * No runtime overhead.
* Safe and correct * Safe and correct.
## Cons of Different Memory Management Techniques ## Cons of Different Memory Management Techniques
* Manual like C: * Manual like C:
* Use-after-free * Use-after-free.
* Double-frees * Double-frees.
* Memory leaks * Memory leaks.
* Automatic like Java * Automatic like Java:
* Garbage collection pauses * Garbage collection pauses.
* Destructors delays * Destructors delays.
* Scope-based like C++ * Scope-based like C++:
* Complex, opt-in by programmer * Complex, opt-in by programmer.
* Potential for use-after-free * Potential for use-after-free.
* Compiler-enforced and scope-based like Rust * Compiler-enforced and scope-based like Rust:
* Some upfront complexity * Some upfront complexity.
* Can reject valid programs * Can reject valid programs.