2012-11-07 2 views
0

리눅스에서 매우 빠르고 무한한 데이터 소스 (예 : 소켓,/dev/null 또는/dev/random)가 있고이 데이터를 다음과 같이 디스크에 기록해야한다고 가정합니다. C/C++. 주어진 하드웨어에서이를 달성하는 가장 빠른 코드는 무엇입니까? fwrite(), unbuffered write(), 일부 부스트 ASIO 함수?리눅스에서 파일을 쓰는 가장 빠른 방법

+0

주어진 OS는 무엇입니까? –

+0

ok, 리눅스로 가자. –

+0

'gzip -c'에 대한 파이프가 꽤 빠를 수있다. –

답변

1

원시 출력 속도 측면에서 보았을 때, 테스트, QoI, 플랫폼, 작성한 내용 및 FILE, fstreams 또는 POSIX의 다른 것의 홀 호스트에 따라 벤치 마크해야 할 것입니다 프리미티브가 가장 빠를 수 있습니다.

그러나 Boost asio와 같은 기능을 사용할 수 있다면 비동기 특성으로 인해 속도가 빨라질 수 있습니다. 디스크에 계속 쓰는 동안 다음 작업을 읽을 때 속도가 빨라질 수 있습니다.

EDIT : 본질적으로 느린 작업 (파일 및 네트워크 IO)을 기다리는 동안 리소스를 최대한 활용할 수 있습니다.

관련 문제