내가 3 개 클래스, 관리자 2 포인터를 보유하고이 ... 도움이 필요합니다. 하나 대 클래스 다른 클래스 B. 은 B을 알지 못합니다.
일부 계산을하고 결국에는 3 개의 부동을 클립 보드에 넣습니다. 다음으로 B은 클립 보드에서 3 개의 부동을 가져오고 자체 계산을 수행합니다. 이 루프는 관리자에 의해 관리되며 여러 번 반복됩니다 (반복 후 반복).
내 문제 : 이제 클래스 는 클래스 B 요구 수레의 벡터를 생성합니다. 이 벡터는 1000 개가 넘는 값을 가질 수 있으며 클립 보드를 사용하여 B으로 전송하는 것을 원하지 않습니다.이 동작은 단계적으로 반복되기 때문에 시간 소비가되고 병목 현상이 발생할 수도 있습니다.
간단한 솔루션은 B이 이 (에 대한 포인터를 설정) 알 것입니다. 다른 하나는 관리자를 통해 벡터에 대한 포인터를 전송하는 것입니다 하지만, 다른 무언가를 찾고 있어요 더 및 B
모든 아이디어를 사이에 존재 분리를 중단하지 않습니다 객체 지향 ?
많은 감사
데이비드
감사합니다. 그건 내가 '클립 보드'로 오늘하고있는 일입니다. 문제는 지금 약 1000 값의 벡터를 전송해야합니다. 그 값을 클립 보드에 쓰고 다시 읽는 것은 시간이 많이 걸립니다. 응용 프로그램이 많은 계산을하는 수학 응용 프로그램이고 큐에 데이터를 전송하지 않는 계산에 CPU 시간을 절약해야하는 CPU 인접한 의미입니다. – David
당신은 ' 큐마다 데이터를 전송해야합니다. 대기열의 데이터를 직접 사용할 수 있습니다. 성능이 중요한 경우 병목 현상을보기 위해 코드를 프로파일 링 했습니까? 나에게 인접한 CPU는 "캐시에서 직접 작업 해보십시오."라고 제안합니다. 특히 이질적인 멀티 코어 하드웨어에서 작업하는 경우에는 매우 어려울 것입니다. –
A와 B가 인터리브 처리되므로, threadsafe 큐의 오버 헤드가 잘못 배치 된 것처럼 보입니다. 물론, 별도의 스레드에서 A와 B를 실행하는 것이 효과적 일 수 있습니다 (두 계산이 모두 크로스 스레드 동기화보다 훨씬 비싸다). – MSalters