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

わんくま同盟

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

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

■96732 / 9階層)  バイト配列とShort配列のやり取りに関して
□投稿者/ とっちゃん (714回)-(2021/01/17(Sun) 20:49:09)
No96731 (Yammy さん) に返信


>>BitConverter は、内部的にはバイト操作だけですが
>>エラーチェックとかいくつかあるので、そういう処理がない直接操作に比べたら遅くなります。
>
>>整数演算にすることでかなり速度アップが期待できます。
>
> どうもありがとうございます。
> 参考になりました。
>

ライブラリのソースが公開されているので、読んでみるとよいと思います。
.NET Framework の場合はこちらから(別途DL可能)
https://referencesource.microsoft.com/

一応….NET Core(.NET 5〜)は別ソースなのでご注意ください(実装も結構違います)。


> JIT分除外というのはよく言われることですが、具体的にどのようなコードで比較したら良いですか?
> 配列を使えば良いかと思ったのですが、
> 配列を使うと通常の変数よりもオーバーヘッドが大きいので
> そちらの方の影響がでてしまう気がします。
>
JIT(Just In Timeの略)は、その関数が初めて呼び出された時に自分の関数のコードを実際の実行環境に
合わせて再コンパイルして実行コードを出力するという仕組みです。

.NET Framework は Java と同じように中間コードで出力されています。
それを実行時に、実際の環境(CPU)に合わせて最終的なマシン語にコンパイルされ実行されるという形になっています。
一度コンパイルすれば、そのプロセスが終了するまでオンメモリコードとしてコンパイル後コードが残ります。

仮に、ToInt16や、GetBytes みたいにごくごく小さなコードで、何度も呼び出すような場合であれば
最初の1回分も含めて、計測してもそれほどではないと思いますけどね。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[8]: バイト配列とShort配列のやり取りに関して /Yammy 返信無し
 
上記関連ツリー

バイト配列とShort配列のやり取りに関して / Yammy (21/01/07(Thu) 21:39) #96662
Re[1]: バイト配列とShort配列のやり取りに関して / Hongliang (21/01/07(Thu) 22:07) #96664
Re[1]: バイト配列とShort配列のやり取りに関して / 魔界の仮面弁士 (21/01/07(Thu) 22:03) #96663
  └ Re[2]: バイト配列とShort配列のやり取りに関して / Yammy (21/01/07(Thu) 23:12) #96665
    └ Re[3]: バイト配列とShort配列のやり取りに関して / とっちゃん (21/01/08(Fri) 01:12) #96666
      ├ Re[4]: バイト配列とShort配列のやり取りに関して / とっちゃん (21/01/08(Fri) 01:12) #96667
      └ Re[4]: バイト配列とShort配列のやり取りに関して / とっちゃん (21/01/08(Fri) 14:45) #96677
        └ Re[5]: バイト配列とShort配列のやり取りに関して / Yammy (21/01/08(Fri) 18:19) #96686
          └ Re[6]: バイト配列とShort配列のやり取りに関して / Hongliang (21/01/08(Fri) 18:39) #96687
            └ Re[7]: バイト配列とShort配列のやり取りに関して / とっちゃん (21/01/08(Fri) 22:15) #96690
              └ Re[8]: バイト配列とShort配列のやり取りに関して / Yammy (21/01/17(Sun) 17:51) #96731
                └ バイト配列とShort配列のやり取りに関して / とっちゃん (21/01/17(Sun) 20:49) #96732 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信