【问题标题】:2 android paths equal but drawing performance is different2个android路径相等但绘图性能不同
【发布时间】:2016-10-24 12:07:02
【问题描述】:

我有 2 个具有相同操作(moveto、lineto 等)的 android 路径。

在绘制和移动路径 1 时速度很快。 (fps)

在绘制和移动路径 2 时,速度会慢 10-20 倍。 (fps) 我使用相同的 Canvas 和相同的颜料。

有什么区别? 路径是否有任何属性会影响绘图的性能?

canvas.drawPath(thepath, paint); // FAST
//canvas.drawPath(thepath2, paint); // SLOW

【问题讨论】:

  • 为什么是-1。我在问是否有任何影响绘图行为的路径属性?
  • 路径相同还是形状不同? drawPath 可以使用更简单的形状更快,比如很多直线,而如果有很多锯齿状的东西,drawPath 会很慢。

标签: android performance canvas path


【解决方案1】:

您可以通过link 使用 Systrace 来了解更多关于 android 应用程序性能的细节。 Systrace 将进行检查,您可以轻松找出路径中需要更多时间的位置2。

【讨论】:

  • 你也可以在 cmd 文件上运行,将你的 cmd 路径导航到你的 android sdk 并运行命令,你会得到确切的问题。还有一件事,一旦您学会了如何使用 systrace,您就可以以最佳方式管理您的应用程序性能
  • 谢谢,我也会尝试解决其他问题。但我想知道有什么区别。如果仅将问题隔离到路径。那么有什么区别呢?
  • 可以匹配两个绘制路径的过程,匹配它们的trace。你会得到什么在后台运行导致 path2 延迟
  • 我在我的 SDK 文件夹中找不到 systrace 工具。我搜索了整个 SDK 文件夹。从哪里得到这个?我需要下载一些东西吗?
  • 我猜是这个 Android Studio,但我在 Eclipse 中。我不知道如何从 eclipse 启动 systrace ?在 DDMS 中,我有一个按钮“使用 systrace 捕获系统范围的跟踪”。它为我生成了一个大小为 280k 的 HTML 文件,打开时它只是空的白色。也是等了1分钟后。我走对了吗?
猜你喜欢
  • 2014-06-25
  • 1970-01-01
  • 2016-02-19
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多