this post was submitted on 08 Mar 2025
10 points (91.7% liked)

Rust Programming

8557 readers
2 users here now

founded 5 years ago
MODERATORS
10
Which is faster? (lemmings.world)
submitted 1 week ago* (last edited 1 week ago) by commander@lemmings.world to c/rust@lemmy.ml
 
let mut variable: Type;
loop {
    variable = value;
}

or

loop {
    let variable: Type = value;
}
you are viewing a single comment's thread
view the rest of the comments
[โ€“] anhkagi@jlai.lu 15 points 1 week ago* (last edited 1 week ago) (1 children)

according to godbolt: https://rust.godbolt.org/z/hP5Y3qMPW

use rand::random;

pub fn main1() {
    let mut var : u128;
    loop {
        var = random();
    }
}

pub fn main2() {
    loop {
        let var : u128 = random();
    }
}

compiles to:

example::main1::h45edf333d7832d08:
.Lfunc_begin8:
        sub     rsp, 24
.LBB8_1:
.Ltmp80:
        mov     rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
        call    rax
        mov     qword ptr [rsp + 8], rdx
        mov     qword ptr [rsp], rax
        jmp     .LBB8_1
.Ltmp81:
.Lfunc_end8:

example::main2::h1a899b25b96d66db:
.Lfunc_begin9:
        sub     rsp, 24
.LBB9_1:
.Ltmp82:
        mov     rax, qword ptr [rip + rand::random::he3c23ceb967a3e28@GOTPCREL]
        call    rax
        mov     qword ptr [rsp + 8], rdx
        mov     qword ptr [rsp], rax
        jmp     .LBB9_1
.Ltmp83:
.Lfunc_end9:
        jmp     .LBB9_1

So yeah, exactly the same thing.

[โ€“] commander@lemmings.world 5 points 1 week ago

Fascinating! Thank you for sharing this.