Rumah >pembangunan bahagian belakang >C++ >Adakah `&as;` Sentiasa Menawarkan Keuntungan Prestasi dengan Jenis Boleh Null?
Perangkap Prestasi dengan "&as"; dan Jenis Boleh Null
Meningkatkan prestasi melalui sintaks ringkas sering terlintas di fikiran apabila menggunakan "&as;" pengendali. Walau bagaimanapun, seperti yang ditunjukkan oleh penanda aras baru-baru ini, pengendali ini mungkin tidak sentiasa menyampaikan pengoptimuman yang dimaksudkan untuk jenis nullable.
Penanda aras mendedahkan perbezaan prestasi yang tidak dijangka antara "&as;," "&is;" diikuti dengan pemutus, dan juga penyelesaian LINQ. Yang mengejutkan ramai, warisan "&is;" pendekatan mengatasi prestasi "&as;", dengan perbezaan 20 kali ganda. Ini menimbulkan persoalan: mengapa kelembapan seperti itu dengan "&as;"?
Sebab asasnya terletak pada kod yang dijana oleh pengkompil JIT. Untuk "&is;," semak jenis pantas dan nyahkotak sudah memadai. "&as;," sebaliknya, menggunakan fungsi pembantu CLR untuk penukaran nilai disebabkan oleh ketidakpadanan antara integer berkotak dan Nullable
Walaupun penyelesaian LINQ dijangka ketinggalan disebabkan oleh iterator, kelesuannya berbanding "&as;" membingungkan. Kemungkinan penyebabnya ialah pengoptimuman ngen.exe.
Kesimpulannya, sementara "&as;" menawarkan kemudahan sintaksis, pertukaran prestasinya dengan jenis boleh batal mesti dipertimbangkan dengan teliti dalam senario sensitif prestasi.
Atas ialah kandungan terperinci Adakah `&as;` Sentiasa Menawarkan Keuntungan Prestasi dengan Jenis Boleh Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!