2012-03-12 2 views
1

인스턴스에 의해 얼마나 많은 메모리가 AUSampler (아마도 soundFont 데이터 크기 포함)에 사용되고 있는지를 어떻게 알 수 있습니까?AUSampler 인스턴스의 크기를 결정하는 방법은 무엇입니까?

(아래) sizeof을 사용해 보았지만 이해가되지 않습니다. 4? 4 뭐야?

문맥 : iOS 용 뮤지컬 장난감을 만들고 있습니다. AUSampler은 모노 포닉이므로 동일한 샘플러 인스턴스를 사용하는 두 개의 트랙은 서로의 음을 끕니다. 또한 soundFonts에는 많은 사전 설정이있을 수 있으므로 동일한 soundFont의 다른 사전 설정을 사용하려면 여러 AUSampler 인스턴스를 만들어야합니다. soundFonts는 수 메가 바이트 이상으로 실행될 수 있으므로 내 메모리 오버 헤드가 무엇인지 판단하고 싶습니다. - 감사!

노드 : 4.000000 단위 : 4.000000

Float64 nodeSize = sizeof(samplerNode); 
Float64 unitSize = sizeof(samplerUnit); 

printf("node: %f unit: %f \n", nodeSize, unitSize); 
+1

sizeof는 항상 크기를 바이트로 반환하므로 4 바이트입니다. 그리고 samplerNode와 samplerUnit이 일부 불투명 한 구조에 대한 typedef'd 포인터이고, iOS에서 포인터가 4 바이트이기 때문에 4입니다. 어쨌든'sizeof'는 런타임이 아니라 컴파일 타임에 평가되기 때문에 가능하지 않을 수 있습니다. –

답변

1

은 엑스 코드에서 사용 악기 앱의 메모리 사용량을보고, 다음의 메모리 사용량을 계산하기 위해 데이터를 얻을 악기의 다른 번호를 사용하여 응용 프로그램을 실행 시도 각 추가 하나.

AUSampler와 같은 객체가 사용하는 메모리 양은 객체 크기와 매우 다를 수 있습니다 (객체 포인터의 크기보다 훨씬 큽니다).

+0

ok - 감사합니다. 좀 더 직접적인 방법이 있기를 바랬습니다. Core Audio로 작업하는 것은 종종 정보 제거 도구 검색과 같습니다 (좋은 방법은 아닙니다). –

관련 문제