gpt4 book ai didi

android - 为什么算法这么慢?

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:23 25 4
gpt4 key购买 nike

我正在创建一个折线图,而我最初使用的代码在绘制时速度太慢以至于没有用。我用我在网上找到的代码替换了它,它变得更快了。我只是好奇为什么原始代码这么慢。下面发布的所有代码都在自定义 View 的 onDraw() 方法中:

原始慢速代码:

    float yStart = 300f;

for (int i=0; i < values.length; i++){

drawPath.moveTo(xStart, yStart);
drawPath.lineTo(xStart+10, values[i]);
drawPath.close();
canvas.drawPath(drawPath, linePaint);

xStart += 10;
yStart = values[i];
}

后期快速代码:

            float datalength = values.length;
float colwidth = (width - (2 * border)) / datalength;
float halfcol = colwidth / 2;
float lasth = 0;
for (int i = 0; i < values.length; i++) {
float val = values[i] - min;
float rat = val / diff;
float h = graphHeight * rat;
if (i > 0)
canvas.drawLine(((i - 1) * colwidth) + (horStart + 1) + halfcol, (border - lasth) + graphHeight, (i * colwidth) + (horStart + 1) + halfcol, (border - h) + graphHeight, linePaint);
lasth = h;

我只是不明白为什么一个比另一个更有效率。有什么想法吗?

最佳答案

清晰

在第一 block 中,有对对象的三个操作{moveTo、lineTo、drawPath、close}


第二段,除了一个对象操作外,全是float操作

关于android - 为什么算法这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com