作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码如下 -
[[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% 的时间来执行最后一行[路径笔画]
,而 Quartz Debugger 告诉我我的应用程序仅以更少的时间运行超过 10 fps(另一个 View 在其之上改变位置总是导致更新)。
我正在寻找提高抚摸贝塞尔曲线路径性能的方法,有时超过 1000 个点的路径会以 >60fps 快速绘制,但是在某些极端情况下,即使点数量相同,也许如果点彼此距离太远(或太密集?),性能变得非常缓慢。
我不知道我能对此做些什么。我认为将 View 缓存为位图代表很有帮助,但它对实时调整大小并没有真正的帮助。
编辑:注释掉行 [path setLineWidth:2];
当然有帮助,但路径看起来真的太“细”了。
最佳答案
您可以使用 setFlatness: 方法调整曲线的平坦度,较高的值会提高渲染速度,但会牺牲准确性。例如,您应该在实时调整大小期间使用更高的值。
关于objective-c - 贝塞尔路径解决性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433522/
我是一名优秀的程序员,十分优秀!