commander@lemmings.world to Rust Programming@lemmy.mlEnglish · edit-21 day agoWhich is faster?message-squaremessage-square11fedilinkarrow-up19arrow-down12file-text
arrow-up17arrow-down1message-squareWhich is faster?commander@lemmings.world to Rust Programming@lemmy.mlEnglish · edit-21 day agomessage-square11fedilinkfile-text
minus-squareAnh Kagilinkfedilinkarrow-up13·edit-220 hours agoaccording 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.
minus-squarecommander@lemmings.worldOPlinkfedilinkEnglisharrow-up4·1 day agoFascinating! Thank you for sharing this.
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:
So yeah, exactly the same thing.
Fascinating! Thank you for sharing this.