teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ちょっとだけ追加

2016/02/28 14:22

投稿

raccy
raccy

スコア21768

answer CHANGED
@@ -1,5 +1,8 @@
1
- 下記コードをMono 4.2.1 (OS X 10.11.3)で試して見ましたが、`!=`の方が低速です。また、`!=`も[String.Inequality 演算子 (String, String)](https://msdn.microsoft.com/ja-jp/library/system.string.op_inequality(v=vs.110).aspx)というメソッドなので、メソッド呼び出しになると思われます。また、nullの場合に結果が異なります。
1
+ 下記コードをMono 4.2.1 (OS X 10.11.3)で試して見ましたが、`!=`の方が3倍ぐらい遅いです。また、`!=`も[String.Inequality 演算子 (String, String)](https://msdn.microsoft.com/ja-jp/library/system.string.op_inequality(v=vs.110).aspx)というメソッドなので、メソッド呼び出しになると思われます。また、nullの場合に結果が異なります。
2
2
 
3
+ と言うことで、良い事なんて無いようです。下記コードをレビュアーに叩きつけてやって下さい。
4
+ ※ Visual C#ではは未確認なので、ご注意を。
5
+
3
6
  ```C#
4
7
  using System;
5
8
  using System.Diagnostics;

1

検証のソースコードが間違っていました。すいません。

2016/02/28 14:22

投稿

raccy
raccy

スコア21768

answer CHANGED
@@ -1,4 +1,4 @@
1
- 下記コードをMono 4.2.1 (OS X 10.11.3)で試して見ましたが、速度に違いは見受けられませんした指摘され方は何か勘違いされているのでは?(それとも、.NET Frameworkだ速度に違出るのかも知れません)
1
+ 下記コードをMono 4.2.1 (OS X 10.11.3)で試して見ましたが、`!=`の方が低速でた、`!=`も[String.Inequality 演算子 (String, String)](https://msdn.microsoft.com/ja-jp/library/system.string.op_inequality(v=vs.110).aspx)というメソッドなので、メソッド呼びしになと思われます。また、nullの場合に結果異なります。
2
2
 
3
3
  ```C#
4
4
  using System;
@@ -12,13 +12,13 @@
12
12
  const long times = 1000000000;
13
13
  String text = "a";
14
14
  Console.WriteLine("TimeMethod: " + TimeMethod(times, text));
15
- Console.WriteLine("TimeEqual: " + TimeMethod(times, text));
15
+ Console.WriteLine("TimeEqual: " + TimeEqual(times, text));
16
16
  text = "";
17
17
  Console.WriteLine("TimeMethod: " + TimeMethod(times, text));
18
- Console.WriteLine("TimeEqual: " + TimeMethod(times, text));
18
+ Console.WriteLine("TimeEqual: " + TimeEqual(times, text));
19
19
  text = null;
20
20
  Console.WriteLine("TimeMethod: " + TimeMethod(times, text));
21
- Console.WriteLine("TimeEqual: " + TimeMethod(times, text));
21
+ Console.WriteLine("TimeEqual: " + TimeEqual(times, text));
22
22
  }
23
23
  public static TimeSpan TimeMethod(long times, String text) {
24
24
  Stopwatch sw = new Stopwatch();
@@ -47,4 +47,4 @@
47
47
  return sw.Elapsed;
48
48
  }
49
49
  }
50
- ```
50
+ ```