Rust debug set_len

Rust debug set_len

날짜
2023년 10월 25일
생성자
ShalomShalom
카테고리
rust
작성일
2023년 10월 25일
태그
rust
Rust의 File에는 set_len이라는 기능이 있다
해당 기능을 사용하면 파일을 생성하여 바로 크기를 지정할 수 있다
즉, 덤프파일을 만들어볼 수 있다

문제점

윈도우 환경에서는 문제가 없지만 Ubuntu 환경에서 문제가 발생한다
Ubuntu 자체 함수에는 2가지의 덤프파일 생성 api가 있다
  • truncate
  • fallocate
Rust의 std를 따라가 보면 truncate를 사용하도록 되어있다
하지만 truncate를 사용하고있다
위의 내용에 따르면 truncate는 실제 물리적 공간을 할당하지 않고 metadata를 업데이트만 한다
따라서 속도가 빨랐던 것..
💡
윈도우에서 set_len을 할 경우 Ubuntu보다 benchtime이 길었었다 이유가 궁금했었는데 → 실제로 물리적 공간을 할당하냐 안하느냐의 차이였다
→ 나중에 du 커맨드로 확인해보면 덤프 파일에 대한 dir의 크기가 너무 작게 잡힌다
 

fallocate

fallocate는 실제 디스크에 물리적 공간을 할당한다
fallocate를 사용하기 위해서는 별도로 nix crate를 사용해야한다
 

댓글

guest