Мой код выглядит следующим образом -
[[NSColor whiteColor] set];
// `path' is a bezier path with more than 1000 points in it
[path setLineWidth:2];
[path setLineJoinStyle:NSRoundLineJoinStyle];
[path stroke];
// some other stuff...
Запустив инструмент профилирования времени в Instruments, он говорит, что мое приложение тратит 93,5% времени на последнюю строку [path stroke]
, а Quartz Debugger сообщает, что мое приложение работает только со скоростью менее 10 кадров в секунду (другой взгляд меняет положение поверх него всегда происходит обновление).
Я ищу способы улучшить производительность поглаживания пути Безье, иногда пути с более чем 1000 точками рисуются очень быстро с> 60 кадрами в секунду, однако в некоторых крайних случаях даже с тем же количеством точек, возможно, если точки слишком далеко друг от друга (или слишком плотно?), производительность становится очень вялой.
Я не уверен, что я могу с этим поделать. Я думаю, что кэширование представления как растрового представителя полезно, но оно не может помочь с изменением размера в реальном времени.
Редактировать: комментирование строки [path setLineWidth:2];
, безусловно, помогает, но путь выглядел действительно слишком «тонким».