저는 iOS에서 일하고 있으며이 문제가 있습니다. 비교적 큰 데이터 집합 (500x500 이상의 C 스타일 배열)을 받게 될 것입니다. 본질적으로이 데이터에서 X/Y 플롯을 구성해야합니다. 여기서 500x500 격자의 각 데이터 포인트는 해당 값을 기반으로하는 색상과 일치합니다. 문제는 이것이 시간이 지남에 따라 변경되어 일부 애니메이션이 생성되므로 새로운 데이터 집합이 들어올 때 변경해야하는 계산이 빠르다는 것입니다.Quartz2D 성능 - 개선 방법
기본적으로 배열의 모든 점에 대해, 어떤 색으로 매핑해야하는지 파악한 다음 그리드에서 그린 사각형을 그려 데이터를 나타냅니다. 내 그리드가 768x768 픽셀이지만 500x500 데이터 세트가있는 경우 각 데이터 포인트는 약 1.5x1.5 사각형을 나타냅니다 (반올림되었지만 아이디어를 얻길 바랍니다).
새로운보기 클래스를 만들고 drawRect를 재정 의하여이를 시도했습니다. 그러나 20x20 데이터 세트 이상의 무서운 성능을 경험했습니다.
나는 이미지 버퍼에 글쓰기에 대한 몇 가지 제안을 보았으나, 그 일을하는 예제를 찾을 수 없었다. (나는 아이폰 OS에 대해 매우 익숙하다.) 어떤 제안이 있으십니까? 아니면 도움이 될만한 자원을 가르쳐 줄 수 있습니까?
다음은 생성과 오프 스크린 컨텍스트에서있는 UIImage를 반환하는 방법에 넣을 수있는 코드의대릴
그건 기본적으로 그가 한 일입니다. – Eiko
아니요, 그는 UIView 하위 클래스에서 drawRect를 사용했는데, 이는 오프 스크린 이미지 컨텍스트에서 그리는 것보다 훨씬 느립니다. –
무엇이 훨씬 빨라지나요? 왜 스크린 밖의 상황에 그리는 것이 훨씬 저렴합니까? 나는 또한 오프 스크린 렌더링을 제안하지만, 쿼츠에 대한 25,000 건의 호출 대신에 메모리에 직접 액세스하는 것은 측정 된 것이 아니라고 생각한다. – Eiko