7.8
享受数百万个最新的Android应用,游戏,音乐,电影,电视,书籍,杂志等。随时随地,您的设备遍布设备。
该应用程序针对开发人员,或任何对OpenGL和画布之间的性能差异感到好奇的人。具体而言,它使用java和c的混合体明确地测量了绘制2D精灵的性能,并使用java的帆布绘制了2D Sprites。
完成测试后,您可以通过按下设备的背面按钮来查看性能的基准分析。
它类似于克里斯·普鲁特(Chris Pruett)的精灵方法测试,但已针对OpenGL ES 2.0进行了更新。他的Sprite方法测试运行了过时的ES 1.0,并在果冻豆(由于Tripple Buffering)上被打破。
该应用程序可在支持OpenGL ES 2.0的所有设备上工作。
这是无广告且无符号的。
更多详细信息:
具体而言,该应用程序使用java和c的混合体明确地测量了绘图2D精灵的性能,并使用java的canvas绘制2D Sprites。
在每个帧:
背景色略微移动,在红色和白色之间脉动。
每个精灵都会移动一个随机的(高斯)数量。如果精灵的中心越过屏幕的边缘,则精灵移动到随机屏幕位置。
画布测试使用SurfaceView和Canvas.drawBitMap()。所有计算均在float []上的Java(使用Random.nextgaussian()和Random.nextfloat())中完成。
OpenGL ES 2.0测试使用Java中的GLSurfaceView。计算是在本机浮点[]上使用C(使用Drand48()和与Java的高斯算法的内联C等于Java算法的c进行计算。绘图也是在C中使用gldrawarrays(gl_points,...)进行的。 C(NDK)方法称为从Java到JNI的每个帧。
所有测试均具有Java分析操作的相同开销。
统计数据:
FPS信息是关于何时实际发布到屏幕上的框架(从技术上讲,SurfaceFlinger)。
绘制信息是关于在OpenGL测试中发出() + glfinish()所需的时间。它不计算实际翻转屏幕缓冲区的时间。
推送信息(仅VBO)是将顶点数据推到GPU缓冲区所需的时间。每帧通常为<.5ms(到0.000)。使用非VBO OpenGL测试时,这次基本上包含在绘图时间中。在实际应用中,将数据推向GPU可能需要更长的时间。此示例仅包含一个VBO(或顶点阵列),每个精灵有2个浮子。实际应用程序将具有更多数据(例如大小和纹理信息)。
计算信息是关于计算框架背景颜色所需的时间和每个精灵的新位置。当启用JIT时,Java(帆布)测试和本机(开放GL)测试之间的计算时间是可比的,但是在禁用JIT时,Java遭受了重大惩罚。
March 14, 2025
March 14, 2025
March 14, 2025
March 14, 2025
March 13, 2025
March 13, 2025
March 13, 2025
March 13, 2025
March 13, 2025
March 13, 2025
March 12, 2025
March 12, 2025