개발 지식

개발 지식

Rust clone()은 쉽지만, 남발하면 성능이 떨어진다

페이지 정보

profile_image
영삼이
0건 107회 25-03-28 15:15

본문

clone()은 쉽지만, 남발하면 성능이 떨어진다

복사는 비용이다. 빌려 쓸 수 있으면 빌려라


Rust에서는 소유권 문제를 피하려고
무심코 .clone()을 쓰기 쉽다:

let name = user.name.clone();

❌ 문제 상황

  • clone()값 전체를 복사

  • 특히 String, Vec, HashMap무거운 타입
    메모리 복사 비용이 큼

  • 반복되는 clone은 퍼포먼스 저하로 이어짐


✅ 해결: 가능한 한 참조로 처리

let name = &user.name; // 복사 없이 빌려 쓰기

또는 함수 인자에서도:

fn greet(name: &str) {
    println!("Hello, {}", name);
}

greet(&user.name);

언제 clone이 필요한가?

  • 값을 소유해야 할 때

  • 수명 문제로 참조가 불가능할 때

  • 멀티 쓰레드에서 값 복제 필요할 때


✔️ .clone()은 편하지만,
습관적으로 쓰면 성능 저하의 원인이 된다.
진짜 필요한 경우가 아니라면 참조로 해결하라.

댓글목록

등록된 댓글이 없습니다.