タグ付けされた質問 「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 not a valid C# expression) } どのようにすることを来る!=」と訳されますか>「?
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 DoOperation2(string …

3
なぜ私のアプリケーションは、その寿命の24%をnullチェックに費やしているのですか?
パフォーマンスが重要なバイナリ決定ツリーがあり、この質問を1行のコードに集中したいと思います。バイナリツリーイテレータのコードは、それに対してパフォーマンス分析を実行した結果です。 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 sealed class BranchNodeData { /// …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.