2012-07-12 2 views
2

파일이 있는지 확인하는 방법은 여러 가지가 있습니다. 내가 아는C++, 파일이 있는지 확인하는 가장 빠른 방법은 무엇입니까?

옵션은 다음과 같습니다

  1. boost::filesystem exists()
  2. access()
  3. stat()
  4. ifstream is_open()

는 사람이 가장 높은 성능을 제공합니다 이들 중 어느 알고 있나요?

EDIT : 액세스 시간이 중요하지 않은/dev/shm에서 실행되는 것으로 가정합니다.

+9

내 베팅은 모든 사람들이 거의 비슷하다는 것입니다. 실행 시간은 HD 또는 SSD의 탐색 대기 시간에 의해 좌우 될 것이기 때문에. – Mysticial

+1

조건에 따라 항상 프로파일 링하십시오. 내가 가장 빠른 것으로 생각하는 것을 말할 수는 있지만 무작위로 대답을 선택했는지 또는 내 대답을 판단하는 데 사용한 조건이 당신과 완전히 다른지 전혀 알 수 없습니다. –

+0

리눅스 박스에서/dev/shm을 실행한다고 가정하면, 액세스 속도에 제한이 없습니다. – user788171

답변

7

여기의 런타임은 커널 모드로 전환하고 파일 시스템 드라이버의 작동을 제어합니다. 심지어 디스크 시간은 무시합니다. 이들 중 누구도 우수한 성능을 제공 할 가능성은 거의 없습니다. 최고의 인터페이스 인 boost::filesystem을 선택하는 것이 가장 좋습니다.

관련 문제