これは非特定コードの問題であることを認識しています。しかし、私は答えを持つ人々がこのフォーラムにいると思う。処理レコードの速度
< 100バイトの大量のレコードを、TCPを介してミリ秒あたり10の割合で受信しています。
私はデータを解析して処理する必要があり、それは100マイクロ秒かかるので、私はかなり上回っています。
100マイクロ秒が大きいようですか?
ここでは、LINQで行う処理の種類の例を示します。本当に便利ですが、本質的に遅いのですか?
public void Process()
{
try
{
int ptr = PayloadOffset + 1;
var cPair = MessageData.GetString(ref ptr, 7);
var orderID = MessageData.GetString(ref ptr, 15);
if (Book.CPairs.ContainsKey(cPair))
{
var cPairGroup = Book.CPairs[cPair];
if (cPairGroup.BPrices != null)
{
cPairGroup.BPrices.ForEach(x => { x.BOrders.RemoveAll(y => y.OrderID.Equals(orderID)); });
cPairGroup.BPrices.RemoveAll(x => x.BOrders.Count == 0);
}
}
}
}
public class BOrderGroup
{
public double Amount;
public string OrderID;
}
public class BPriceGroup
{
public double BPrice;
public List<BOrderGroup> BOrders;
}
public class CPairGroup
{
public List<BPriceGroup> BPrices;
}
public static Dictionary<string, CPairGroup> CPairs;
いいえ、LINQは「本質的に遅い」ではありません。 – Amy
データを処理するのに100マイクロ秒かかったとはどのように判断しましたか?サブミリ秒の時間分解能はどのようになっていますか? –
あなたのクラスの定義も表示 – Milney