คำถามติดแท็ก il

1
ทำไมคอมไพเลอร์ C # จึงแปลสิ่งนี้! = การเปรียบเทียบราวกับว่าเป็นการเปรียบเทียบ>
ฉันมีโอกาสบริสุทธิ์ค้นพบว่าคอมไพเลอร์ C # เปลี่ยนวิธีนี้: static bool IsNotNull(object obj) { return obj != null; } ... เข้าสู่CILนี้: .method private hidebysig static bool IsNotNull(object obj) cil managed { ldarg.0 // obj ldnull cgt.un ret } …หรือหากคุณต้องการดูรหัส C # ที่ถอดรหัสแล้ว: static bool IsNotNull(object obj) { return obj > null; // (note: this is …
147 c#  cil  il  notnull  binary-operators 

3
ประสิทธิภาพของวิธีการแบบคงที่เทียบกับวิธีการของอินสแตนซ์
คำถามของฉันเกี่ยวข้องกับลักษณะการทำงานของวิธีการแบบคงที่เทียบกับวิธีการของอินสแตนซ์และความสามารถในการปรับขนาด สมมติสำหรับสถานการณ์นี้ว่านิยามคลาสทั้งหมดอยู่ในแอสเซมบลีเดียวและจำเป็นต้องมีชนิดตัวชี้แยกหลายชนิด พิจารณา: public sealed class InstanceClass { public int DoOperation1(string input) { // Some operation. } public int DoOperation2(string input) { // Some operation. } // … more instance methods. } public static class StaticClass { public static int DoOperation1(string input) { // Some operation. } public static int …

3
เหตุใดแอปพลิเคชันของฉันจึงใช้เวลา 24% ของชีวิตในการตรวจสอบค่าว่าง
ฉันมีโครงสร้างการตัดสินใจไบนารีที่สำคัญด้านประสิทธิภาพและฉันต้องการเน้นคำถามนี้ไปที่โค้ดบรรทัดเดียว โค้ดสำหรับตัววนซ้ำต้นไม้ไบนารีอยู่ด้านล่างพร้อมผลลัพธ์จากการรันการวิเคราะห์ประสิทธิภาพเทียบกับมัน public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b = node.BranchData; 0.5% node = b.Child2; 12.8% if (inputs[b.SplitInputIndex] <= b.SplitValue) 0.8% node = b.Child1; } 0.4% return node; } BranchData เป็นฟิลด์ไม่ใช่คุณสมบัติ ฉันทำสิ่งนี้เพื่อป้องกันความเสี่ยงที่มันจะไม่อินไลน์ คลาส BranchNodeData เป็นดังนี้: public …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.