C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

型変換の処理速度について

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■90946 / inTopicNo.1)  型変換の処理速度について
  
□投稿者/ 悩み中 (1回)-(2019/05/14(Tue) 18:11:29)

分類:[.NET 全般] 

OS:Windows10
Visual Basic 2010

について2つ質問があります。

1)CstrとTostringでは、どちらの方が処理速度が速いでしょうか?
2)明示的型変換(CINT,CLNG等指定)と暗黙の型変換(指定無し)では、どちらの方が処理速度が速いでしょうか?

引用返信 編集キー/
■90952 / inTopicNo.2)  Re[1]: 型変換の処理速度について
□投稿者/ キングダム (24回)-(2019/05/14(Tue) 20:56:43)
No90946 (悩み中 さん) に返信

そりは質問することじゃなくて確認することでは?
クイズだと思って答えて見ようと思います

1)CstrとTostringでは、どちらの方が処理速度が速いでしょうか?

ToStringが速いです、CStrは昔から存在する古いメソッドなので
新しいToStringが速いと思います

2)明示的型変換(CINT,CLNG等指定)と暗黙の型変換(指定無し)では、どちらの方が処理速度が速いでしょうか?

明示的型変換が速いです
暗黙の型変換ではランタイムが型の確認をすると思うからです

確認した結果をお教えいただければ幸いでございます
引用返信 編集キー/
■90955 / inTopicNo.3)  Re[1]: 型変換の処理速度について
□投稿者/ とっちゃん (590回)-(2019/05/14(Tue) 21:24:07)
No90946 (悩み中 さん) に返信

> 1)CstrとTostringでは、どちらの方が処理速度が速いでしょうか?
> 2)明示的型変換(CINT,CLNG等指定)と暗黙の型変換(指定無し)では、どちらの方が処理速度が速いでしょうか?
> 
確認の方法がわからないということで、一つだけ計測サンプルコードを書いておきます。

VBでコンソールアプリを作成して、下記コードを張り付ければ動くと思います。
下記のコードは、CStr の計測例です。
環境によって、100000000 の部分の数字を大きくすればそれだけ平均値が均一化します。
あくまでも平均値なので、環境に依存しますが、これを比較したいものごとに用意して
いろいろと計測してみれば、ざっくり程度ですが、簡単な計測ができます。

最初に一回ループの外側で呼び出しているのは、JIT分をカウントさせないための工夫です。
ちなみに、デバッグ版で私の環境で下記コードは約7秒でした。
ToStringとどっちが早いか?は計測していません。

私も知りたいので、計測結果を上げてくれると嬉しいです。
あと、その際のTestメソッドの中身も書いてもらえると嬉しいです。
(初めて VB.NETなプロジェクト作ってコード書いたかもw)

Module Module1
  Sub Main()
    TestCstr()
    Dim st As Stopwatch = New Stopwatch
    st.Start()
    For index = 1 To 100000000
      TestCstr()
    Next
    st.Stop()
    Console.WriteLine(st.Elapsed.ToString())
    'この下に、同じようにToStringでの計測を記述する
  End Sub

  Private Function TestCstr() As String
    Dim val As String = CStr(10)
    Return val
  End Function
End Module

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ