Nikmati jutaan aplikasi android terbaru, game, musik, film, TV, buku, majalah & lainnya. Kapan saja, di mana saja, di seluruh perangkat Anda.
Aplikasi ini ditargetkan untuk pengembang, atau siapa pun yang ingin tahu tentang perbedaan kinerja antara OpenGL dan Canvas. Secara khusus, ini mengukur kinerja gambar 2D sprite secara eksplisit menggunakan OpenGL ES 2.0 dengan hibrida Java dan C, dan menggambar sprite 2D menggunakan kanvas dengan java.
Ketika Anda selesai menjalankan tes, Anda dapat melihat analisis benchmark kinerja dengan menekan tombol kembali perangkat.
Ini mirip dengan tes metode sprite oleh Chris Pruett, tetapi diperbarui untuk OpenGL ES 2.0. Tes metode sprite -nya menjalankan ES 1.0 yang sudah ketinggalan zaman, dan rusak pada jelly bean (karena buffering tripple).
Aplikasi ini berfungsi pada semua perangkat yang mendukung OpenGL ES 2.0.
Ini bebas iklan dan bebas nag.
Lebih detail:
Secara khusus, aplikasi ini mengukur kinerja gambar 2D sprite secara eksplisit menggunakan OpenGL ES 2.0 dengan hibrida java dan c, dan menggambar sprite 2D menggunakan kanvas dengan java.
Di setiap bingkai:
Warna latar belakang sedikit bergeser, berdenyut antara merah dan putih.
Setiap sprite memindahkan jumlah acak (Gaussian). Jika pusat sprite melewati tepi layar, sprite bergerak ke lokasi layar acak.
Tes Canvas menggunakan SurfaceView dan Canvas.DrawBitMap (). Semua perhitungan dilakukan dalam Java (menggunakan acak.nextgaussian () dan random.nextfloat ()) pada float [].
Tes OpenGL ES 2.0 menggunakan GLSurfaceview di Java. Perhitungan dilakukan dalam C (menggunakan DRAND48 () dan inline C yang setara dengan algoritma Gaussian Java) pada float asli []. Gambar juga dilakukan di C, menggunakan Gldrawarrays (GL_POINTS, ...). Metode C (NDK) disebut setiap bingkai dari Java melalui JNI.
Semua tes memiliki overhead yang identik dari operasi profil di Java.
Statistik:
Informasi FPS adalah tentang kapan frame benar -benar diposting ke layar (secara teknis, Surfaceflinger).
Informasi gambar adalah tentang waktu yang diperlukan untuk mengeluarkan (dan glflush () + glfinish (), dalam tes OpenGL) perintah gambar. Itu tidak menghitung waktu untuk benar -benar membalik buffer layar.
Informasi Push (hanya VBO) adalah tentang waktu yang diperlukan untuk mendorong data simpul ke buffer GPU. Ini sering kali <0,5ms (yang putaran ke 0,000s) per frame. Saat menggunakan tes OpenGL non-VBO, kali ini pada dasarnya termasuk dalam waktu penarikan. Dalam aplikasi praktis, mungkin perlu waktu lebih lama untuk mendorong data ke GPU. Contoh ini hanya berisi satu VBO (atau array vertex) dengan 2 pelampung per sprite. Aplikasi praktis akan memiliki lebih banyak data (seperti ukuran dan informasi tekstur).
Informasi CALC adalah tentang waktu yang diperlukan untuk menghitung warna latar belakang bingkai dan posisi baru setiap sprite. Ketika JIT diaktifkan, waktu perhitungan sebanding antara tes Java (Canvas) dan tes asli (GL terbuka), tetapi dengan JIT dinonaktifkan, Java menderita penalti yang signifikan.