BitConverterを使用したC#での高速キャスティングは、より速くすることができますか?

StackOverflow https://stackoverflow.com/questions/4923846

  •  30-10-2019
  •  | 
  •  

質問

アプリケーションでは、非常に大きなバイトアレイがあり、これらのバイトを異なるタイプに変換する必要があります。現在、使用しています BitConverter.ToXXXX() この目的のために。私たちの重い打者は、 ToInt16ToUInt64.

為に UInt64, 、私たちの問題は、データストリームには実際に6バイトのデータがあり、大規模な整数を表すことです。 6バイトのデータをに変換するネイティブ機能がないため UInt64, 、私たちはします:

UInt64 value = BitConverter.ToUInt64() & 0x0000ffffffffffff;

の使用 ToInt16 簡単ですが、少し操作する必要はありません。

私たちはこれら2つの操作の多くを行っているので、私はこれらの変換を行うためのより速い方法があるかどうかをSOコミュニティに尋ねたいと思いました。現在、CPUサイクル全体の約20%がこれらの2つの機能によって消費されています。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top