나는 KVO/KVC의 거대한 팬이되었습니다. 내 MVC 아키텍처를 깨끗하게 유지하는 방법을 좋아합니다. 그러나 3D 렌더링 응용 프로그램의 내부 렌더링 루프에서 KVO를 사용할 때 거대한 성능에 큰 타격을 입지는 않습니다. 관찰중인 각 개체 (잠재적으로 수백 가지)에 대해 메시지가 초당 60 회 발생하는 곳을 디자인하고 있습니다.코코아 터치 프로그래밍. 내부 루프의 KVO/KVC는 매우 느립니다. 어떻게 속도를 올릴 수 있습니까?
KVO의 속도를 높이기위한 요령은 무엇입니까? 특히, 나는 스칼라 값 (object가 아닌)을 관찰하고 있습니다. 아마도 wrapping/unwrapping이 나를 죽일 것입니다. 나는 또한 설정하고 관찰을 찢어 버리고있다.
[foo addObserver:bar forKeyPath:@"fooKey" options:0 context:NULL];
[foo removeObserver:bar forKeyPath:@"fooKey"];
내부 루프 안에. 아마 나는 그것에 대한 타격을 취하고있다.
저는 정말로, KVO가 제공하는 커다란 유연성을 유지하고 싶습니다. 손을 빌려줄 수있는 속도가 괴롭습니까?
건배, 더그
KVO/KVC로 인한 성능 저하가 어떻게 발생했는지 어떻게 알 수 있습니까? 대답은 눈부신 예,하지만 가끔은 사람들이 성능 병목 현상에 대한 가정을 가져 가면 미안 해요 ... – zoul
나는 종교적으로 윤곽을 나타냅니다. KVO로 크롤링에 시달렸을 때 내 마음이 가라 앉았다. 그렇지. – dugla