"모든 크기 계산"을 기하 급수적으로 빠르게하기 위해 Lion의 Finder 목록보기가 어떻게 변경 되었습니까?


10

Mac OS X가 등장하기 전에 , Finder 창에 대해 각 폴더에 포함 된 읽을 수있는 파일 크기 공간의 총계를 결정하기 위해 Finder에 모든 크기계산 하도록 요청할 수있었습니다 .

파인더-목록보기-보기 옵션 표시-모든 크기 계산

SSD가 있는지 여부에 관계없이 여러 Mac에서 폴더의 목록보기 크기 조정을 테스트했지만 Lion은 크기를 계산하는 데 너무 빠릅니다. 새로운 캐싱 데이터 구조가 있거나 Finder가 이 계산 속도를 크게 높이려면 Spotlight 또는 유사한 데이터베이스의 메타 데이터 정보를 사용하십시오.


1
그 창문 어디서 났어? 하단의 "기본값으로 사용"버튼을 기준으로하면 "보기 옵션 표시"창 (<kbd> ⌘J </ kbd>)처럼 보이지만 하단 섹션에 아무 것도 표시 할 수 없습니다.
Cajunluke

1
@CajunLuke "보기 옵션 표시"창을 열기 전에 창보기를 목록으로 전환해야합니다.
pdd

답변:


3

Lion이 폴더의 크기를 처음 계산할 때 폴더 (및 패키지 / 번들) 크기를 계산할 때 더 빠르다는 것을 관찰하지 못했습니다. 그러나 동일한 폴더에서 후속 계산이 훨씬 빠릅니다.

빠른 속도의 일부는 Finder가 계산 될 때까지 "-"를 표시하지 않고 폴더 크기를 다시 계산하는 동안 이전에 계산 된 크기를 회색 텍스트로 즉시 표시한다는 것입니다. 폴더 크기가 다시 계산 된 후에는 숫자가 업데이트되고 (크기가 변경된 경우) 검은 색으로 바뀝니다.

Finder는 이전에 계산 된 폴더 크기를 눈에 띄게 캐싱하기 때문에 마지막으로 계산 된 이후에 변경된 폴더의 크기 만 다시 계산할 수 있습니다.


이것이 문제의 핵심이라고 생각합니다. 캐싱이 훨씬 우수하며 부분 또는 부실한 결과가 점차적으로 표시됩니다. 알고있는 데이터를 채우기 위해 알고리즘을 조정했는지 알 수는 없지만 캐싱만으로도 실제로 실제로 작동하는 방식에 대한 즐거움이 될 것 같습니다.
bmike

몇 개월을 자세히 관찰 한 후에는 완전히 맞습니다. 캐싱 메커니즘은 이제 오랫동안 사용했던 Mac에서이 데이터는 거의 항상 정확하고 즉각적입니다. OS가 정보를 완전히 수집해야하기 때문에 재설치 또는 연합 직후 새로운 Mac에서만 오래된 속도가 눈에 is니다.
bmike

7

Lion 이전에는 Finder.app의 파일 크기 열에 정확한 파일 크기가 아니라 하드 디스크에서 각 파일에 필요한 크기가 표시되었습니다. 예를 들어, 1 바이트 파일은 실제로 HFS 형식 시스템에서 4KB의 공간을 차지하므로 4KB로 표시되었습니다. File›Get Info (또는 Terminal.app와 같은 다른 앱 사용 ls -lsa또는 TotalFinder.app 와 같은 Finder.app 대체 사용 )를 여는 것 외에는 1 바이트의 실제 파일 크기를 쉽게 확인할 수있는 방법이 없었습니다 .

(이전에는 bugreport.apple.com에서 버그 8926275로보고했습니다 .)

Lion에서이 동작이 수정되었으며 이제 파일 크기 열에 하드 디스크에 할당 된 크기 (파일 시스템에 따라 다름)가 아니라 각 파일의 정확한 파일 크기가 표시됩니다.

이 크기는 ls터미널 의 바이너리에서 얻은 숫자와 같으므로 계산하기가 훨씬 효율적입니다.


1
이것은 또한 훌륭한 세부 사항입니다. SSD가 널리 보급되고 스냅 샷으로 스토리지가 더욱 정교 해짐에 따라 파일의 특정 인스턴스가 차지하는 공간의 크기에 대한 걱정을 멈추고 물리적 파일이 아닌 파일의 논리적 크기에 대해 걱정하기 때문에 오래되었다고 생각합니다.
bmike

나는 이것을 이해하지 못한다. 어떻게 더 효율적입니까? 한 번의 stat(2)통화로 두 번호를 모두 검색 하지 않습니까? 그리고 ls(1)번들 / 패키지 / 폴더의 실제 크기가 전혀 표시되지 않으므로 그 이유가 무엇인지 모르겠습니다.
Ken

@Ken ls은 일반 파일에 적합한 파일 크기를 보여줍니다. stat단일 파일에 대해 동일한 작업을 수행 할 수 있습니다. 내 요점은 번들 / 패키지 / 폴더 크기를 계산하는 데 필요한 "추가 작업"은 이제 더 이상 일반 파일이 아닌 번들 / 패키지 / 폴더에만 필요하다는 것입니다.
Mathias Bynens 2016 년

Mathias : 예, ls번들이 아닌 일반 파일의 파일 크기를 보여줍니다 (내가 말한 것). 호출하여이 작업을 수행합니다 stat. 이전에 정규 파일에 필요한 "추가 작업"은 무엇입니까? 단일 stat호출은 블록 ( st_blocks)과 바이트 ( st_size)를 모두 반환합니다 .
Ken

1

그들이 Spotlight 메타 데이터를 사용하여 파일 크기를 캐시한다고해도 놀라지 않을 것입니다. 이미 FSEvents를 사용하여 파일 시스템의 모든 변경 사항을 추적하고 Time Machine에서 이러한 변경 사항을 모두 백업하는 경우 총 파일 크기를 계산하고 저장하는 추가 비용은 무시할 수 있습니다.


fs_events가 메타 데이터이거나 그렇지 않은 경우 Bean을 쏟을 수 있는지 확인할 수 있습니다. 스포트라이트 데이터를 읽는 것이 좋지만 아직 직접적인 증거는 없습니다.
bmike

1

OS X Lion부터 Apple은 Spotlight와 같은 시스템 기능에서 OS가 파일 추적에 사용하는 SQLite 데이터베이스를 추가했습니다. 매번 파일 시스템을 검사하지 않고 SQLite 데이터베이스에서 쿼리하면 성능이 향상 될 수 있습니다. John Siracusa의 OS X Lion 검토 에서는 Lion의 파일 시스템 변경 사항에 대해 자세히 설명합니다. 특히 여기 에 새로운 SQLite 데이터베이스에 대한 설명이 있습니다.

도움이 되었기를 바랍니다.


이 링크는 매우 훌륭하지만 SQLite 데이터베이스는 모든 Mac에 표시되어 드라이브의 전체 파일 중 일부인 버전을 가진 문서 만 추적합니다. 모든 파일 크기를 저장하는 데이터베이스에 대한 링크를 찾을 수 있다면 파일 시스템이 이미 데이터베이스이기 때문에 가장 흥미롭지 않습니까?
bmike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.