2014-06-23 3 views
0

Eigen을 실시간 처리를 위해 힙 할당없이 사용하려고합니다.고유 라이브러리 : 실시간 처리

나는 알고 지금까지 같이 실시간으로 Eigen를 사용하는

Matrix<double, Dynamic, Dynamic> allocates on the stack 
Matrix<double, Dynamic, Dynamic, AutoAlign, 1, 1> allocates on the heap 
and Matrix<double, 1, 1> allocates on the stack; 

한 가지 방법은이 크기의 일부만을 사용하여, 큰 크기, 시작에서 행렬 의 크기를 조정하는 것입니다.

제 질문은 : Rm.colPivHouseholderQr().solve(Rhs)과 같은 함수를 사용하면 어떻게 동적 행렬로 계산할 수 있습니까?
이 함수는 행렬의 전체 크기를 취하여이 크기의 일부만 처리되기 때문에 좋지 않습니다.
우리는 분명히 할 수 없습니다 use .resize()

어떻게 실시간 처리 작업을 수행 할 수 있습니까?

답변

0

실시간 처리는 일반적으로 고정 된 일정으로 반복적으로 수행되는 동일한 작업을 포함합니다. 동적 메모리 할당에 대한 한 가지 접근법은 선형으로 할당하는 메모리의 인접한 청크 (풀)를 갖는 것입니다. 그런 다음 처리 기간이 끝날 때이 메모리를 모두 무료로 표시합니다. 할당 비용은 O (1), 할당 취소 비용은 O (1)이며 주어진 작업량에 대해 모든 메모리 할당이 만족된다는 것을 쉽게 보장 할 수 있습니다. 따라서 한 가지 해결책은 맞춤 할당자를 사용하는 것입니다.