Rumah > Artikel > pembangunan bahagian belakang > Adakah Fungsi Maya dalam C merupakan Bottleneck Prestasi?
Implikasi Prestasi Fungsi Maya dalam C
Anda menyatakan kebimbangan tentang kesan prestasi fungsi maya dalam reka bentuk kelas anda. Adakah ini kebimbangan yang sah, atau bolehkah ia dianggap pengoptimuman pramatang?
Untuk menjawab soalan anda, kami menjalankan ujian prestasi pada CPU PowerPC 3GHz. Kami mencipta kelas vektor 4D mudah dengan fungsi get/set. Kami menjalankan ujian dengan fungsi yang ditakrifkan sebagai panggilan fungsi sebaris, maya dan biasa.
Berikut ialah keputusan:
Dalam kes ini, dengan pemasangan data dalam cache L1, panggilan fungsi maya telah kira-kira 20 kali lebih perlahan daripada panggilan dalam talian. Walau bagaimanapun, adalah penting untuk mempertimbangkan konteks perbezaan prestasi ini.
Setiap lelaran gelung ujian melibatkan 12,288 panggilan fungsi. Oleh itu, gelung maya mengambil masa 92ms lebih lama daripada gelung langsung, menghasilkan overhed tambahan hanya 7 nanosaat bagi setiap panggilan fungsi.
Berdasarkan keputusan ini, kami membuat kesimpulan bahawa:
Dalam kebanyakan situasi, melainkan mengoptimumkan prestasi melampau, pertukaran yang dikaitkan dengan penggunaan fungsi maya untuk pengkapsulan dan fleksibiliti mengatasi sebarang kebimbangan prestasi yang berpotensi.
Atas ialah kandungan terperinci Adakah Fungsi Maya dalam C merupakan Bottleneck Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!