this post was submitted on 05 Dec 2024
124 points (99.2% liked)

Linux

48677 readers
433 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] thingsiplay@beehaw.org 5 points 2 weeks ago (1 children)

Especially if you have to use unsafe libraries from C, or use any unsafe block at all to do low level programming or for performance.

[–] naonintendois@programming.dev 8 points 2 weeks ago (2 children)

You don't need unsafe. Just keep pushing to a vec and never remove anything. Memory leaks are more than lost memory allocations. You can even have them with rc/arc cycles

[–] thingsiplay@beehaw.org 5 points 2 weeks ago

Yeah. Lot of people also use Ai generated code... so...

I have tested if clippy would warn me with a simple example (generates 6.7gb memory usage, be careful not to crash your computer if you add another 0...), while I watch with a system monitor (in KDE):

use std::thread;
use std::time;

fn main() {
    let mut vec = Vec::new(); // Create an empty Vector.

    for number in 0..900000000 {
        let bign: i64 = number * number;
        vec.push(bign);
    }

    thread::sleep(time::Duration::from_secs(10));
}

I used the pedantic option of clippy and the only thing it complained was about the notation of the number...:

$ cargo clippy -- -W clippy::pedantic
warning: long literal lacking separators
--> src/main.rs:7:22
|
7 |     for number in 0..900000000 {
|                      ^^^^^^^^^ help: consider: `900_000_000`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal
= note: `-W clippy::unreadable-literal` implied by `-W clippy::pedantic`
= help: to override `-W clippy::pedantic` add `#[allow(clippy::unreadable_literal)]`

warning: `notright` (bin "notright") generated 1 warning
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s
[–] flashgnash@lemm.ee 1 points 2 weeks ago

Surely that's not a memory leak, that's just the program using a lot of memory intentionally