2013-10-18 4 views
1

원래 프로듀서 함수는 데이터를 쓰려고 했으므로 이제 데이터를 쓰는 두 번째 스레드가 생겼습니다. 생성자 함수는 순환 버퍼에 memcpy을 수행하고 소비자 스레드가 쓰기를 시작하도록 트리거합니다.Windows에서 우선 순위를 높이시겠습니까?

2 스레드 구조를 사용하면 쓰기 전에 스레드 분리, 프로그램 안정성 및 변수 계산 기능을 얻을 수 있지만 성능은 50 % 나 떨어집니다.

내 이론은 조정하려는 스레드마다 설정할 수있는 일종의 우선 순위가 있다는 것입니다. 이것이 가능한가.

RAID0 데이터 제거 구성에서 2 개의 SSD를 사용하고 있습니다.

libTIFF io workflow

+0

추가 메모리 복사 단계를 수행하고 있습니다. 물론 더 느립니다. – EJP

+0

@EJP 예, 여분의 메모리 복사본이 있지만 코드가 어떻게 든 메모리 바운드되었거나 메모리 복사본이 파일 쓰기와 직렬로 연결된 경우에만 문제가됩니다. – Mikhail

+0

데이터 쓰기에 사용하는 API는 무엇입니까? –

답변

2

는 "IO 성능이 50 % 더 나쁘다"무엇을 의미합니까? 리소스 모니터에 따르면 디스크 대기열이 가득 찼고 디스크 활성 시간은 100 %입니다. 쓰는 속도 점프를 의미하는 경우 가능한 스레드 우선 순위와 아무 관련이 없습니다. 그것들은 파일 조각화, fs 테이블 수정 등으로 인해 디스크 헤드 위치 지정으로 인해 발생합니다.

+0

동일한 200GB 작업 부하는 약 1.5 배의 시간이 소요됩니다. 처음에 요금은 거의 동일하지만 그 중 하나는 뒤쳐지기 시작합니다. 이것은 처음 12 개 정도이므로 기가 바이트는 같은 시간에 쓰지만 나머지는 생산자 기능에 데이터를 쓰는 것보다 오래 걸립니다. – Mikhail

관련 문제