Saat ini saya sedang mengerjakan program OpenGl yang kinerjanya ingin saya tingkatkan. Performanya baik-baik saja tetapi tidak ideal untuk GPU khusus yang kuat, tetapi buruk pada grafik terintegrasi (<10 fps). Dalam program normal (berbasis CPU, tidak ada OpenGl atau API GPU lainnya), saya akan menjalankan profiler (mungkin yang dibangun menjadi CLion) pada program, melihat di mana sebagian besar waktu dihabiskan, dan kemudian bekerja pada algoritma yang lebih baik untuk area-area tersebut atau temukan cara untuk mengurangi jumlah yang disebut area itu.
Menggunakan teknik ini pada program OpenGl saya menunjukkan bahwa sebagian besar waktu program (~ 86%) pada utas utamanya (yang ingin saya optimalkan) dihabiskan dalam file .so driver OpenGl .so. Selain itu, penggunaan CPU pada program saat sedang berjalan sangat rendah, tetapi penggunaan GPU berkisar antara 95% dan 100%. Secara keseluruhan, informasi ini memberi tahu saya bahwa hambatannya ada pada GPU, sehingga saya harus mengoptimalkannya.
Di sinilah masalah terjadi. Teknik normal saya dalam menggunakan profiler untuk memandu optimasi saya tidak akan bekerja tanpa profiler GPU tertentu. Karena itu, saya melakukan riset untuk menemukan profiler yang akan memberi tahu saya di mana waktu pemrosesan GPU dihabiskan. Saya tidak dapat menemukan apa pun yang dapat digunakan dari jarak jauh. Semuanya hanya Windows saja (saya menjalankan Linux secara eksklusif, dan program saya belum porting ke Windows - juga tidak akan sampai itu jauh lebih jauh), tidak lagi diperbarui, dan / atau biaya lebih dari anggaran untuk proyek ini.
Karena itu, saya bertanya: bagaimana saya bisa mengoptimalkan kinerja program saya ketika profiler yang relevan tidak ada? Saya mencoba menebak di mana masalahnya dan mengoptimalkannya, namun tidak ada bedanya meskipun saya dapat memastikan bahwa pengoptimalan saya (frustum culling) menghasilkan lebih sedikit kerja untuk GPU sekitar setengahnya. Jawaban yang bagus akan memberikan beberapa teknik pembuatan profil yang dapat diterapkan pada OpenGL di Linux, atau akan memberikan teknik yang berfungsi tanpa profiler.