2010-06-21 4 views
0

애플 문서는 이미지를로드 할 때 png를 사용하도록 권장합니다. 그러나 많은 수의 메모리를 사용하는 경우 jpeg를 대신 사용하여 메모리를 절약 할 수 있습니까? 또는로드 후 내부적으로 png로 다시 변환되므로 아무런 차이가 없습니까?많은 수의 이미지, jpeg 또는 png를로드 중입니까?

답변

1

주된 이점은 PNG (특히 Apple Pngcrush 버전에서 pngcrush -iphone으로 생성 된 iPhone PNG)로드가 더 빠릅니다. JPEG (말)보다 적은 RAM을 사용하는 것은 아닙니다.

"메모리"라는 용어를 혼동스럽게 생각하는 것 같습니다. 일반적으로 RAM을 의미합니다. 플래시 사용은 더 일반적으로 "디스크 공간"또는 이와 유사합니다. Apple은 전체 공간 "Capacity"와 여유 공간 "Available"을 호출하여이 문제를 완전히 건너 뜁니다.

메모리를 효율적으로 사용하려면 메모리 누수가 없어야합니다 (누수를 사용하여 일부를 찾아 내고 주변의 모든 부분을 잡아 내지는 않음). 메모리 경고에 대한 응답으로 메모리를 비울 수 있습니다.

+0

웹 개발 배경에서 나는 항상 jpeg를 '로딩'속도로 생각하는 것이 익숙합니다. 더 적은 비트의 데이터로 구성되어 있기 때문에 더 빠르게 작업 할 수 있습니다. 내 자산을 PNG로 변환하여 애플리케이션 실행 시간이 개선되는지 확인합니다. –

+0

그들은 네트워크를 통해 더 빨리 전송 될 수 있지만 여전히 압축 해제해야합니다 (그리고 BGRA라고 생각하는 그래픽 칩의 기본 형식으로 변환해야합니다). 사진은 JPEG로 찍어서 감압이 느려질 수는 없습니다 ... –

+1

[JPEG가 Xcode의 PNG보다 빠르게로드 됨]을 보여주는 벤치 마크입니다 (http://www.cocoanetics.com/2011/10/avoiding-image- 감압병). 내 테스트에서 Xcode 최적화 [정규 최적화 된 PNG보다 크고 느린 파일을 만들었습니다] (http://imageoptim.com/tweetbot.html). – Kornel

4

몇 가지 세부 사항을 자세히 살펴보면,로드 된 이미지는 JPEG 또는 PNG 파일과 같이 이미지 원본과 관계없이 동일한 양의 메모리를 사용합니다. 각 파일 유형은 내부 표현으로 변환됩니다. 어떤 코드가 이미지를 디스크 파일에서 JPEG 로딩 코드와 PNG 로딩 코드 사이의 내부 표현으로 변환하는 과정에서 더 많은 임시 메모리를 필요로하는지 알 수 없습니다.

JPEG 파일로 많은 디스크 공간을 절약 할 수 있습니다.