我尝试了一个基本实验,我在macOS ScreenSaver视图中添加了一个正方形网格(通过Xcode模板创建)。我正在运行性能相当不错的MacBook Pro,但出于某种原因,添加我的网格(由~900 NSView
对象组成)完全锁定了我的系统 - 屏幕保护程序挂起。
这当然不是一个不合理的观点吗?有趣的是,我在macOS应用程序中尝试了完全相同的布局(在NSWindow
中绘图),性能非常好。
有什么区别?
答案 0 :(得分:0)
导致性能问题的原因是所有视图都是图层支持的。一旦我停止请求视图有一个图层,性能就会大大提高。
我还使用CAShapeLayer
来改善动画效果。