2016-03-23 6 views
1

Я использую SVGKit для рендеринга SVG, в котором много встроенных PNG-изображений с кодировкой Base64. Проблема заключается в том, что рендеринг занимает около минуты, что ужасно замедляя мое приложение и использует большой объем памяти. Общий размер SVG составляет 10 МБ, а при использовании используемой памяти около 80-85 МБ. Есть ли способ пройти через это?Оказание SVG со встроенными изображениями PNG с кодировкой Base64 с использованием SVGKit занимает значительную память

Я пробовал кешировать, но проблемы с памятью все еще возникают.

ответ

1

PNG - сжатый формат - при его отображении гарантированно будет использоваться больше памяти. Это фундаментальный предел PNG; если вы хотите уменьшить использование памяти, прекратите использование PNG и вместо этого включите только векторную графику в свой SVG.

Кроме того, Apple обычно хранит дополнительную информацию для каждого PNG для оптимизации скорости рендеринга.

(SVGKit может также хранить дополнительную информацию по той же причине: для увеличения скорости рендеринга. Но сначала вам нужно узнать, насколько велики PNG в памяти)