trading_engine icon indicating copy to clipboard operation
trading_engine copied to clipboard

单方向盘口越多,后面挂单越慢

Open ygcool opened this issue 2 years ago • 1 comments

ps:我是为了测试性能。

比如,先只挂10w+的卖盘单子,会非常非常非常慢。 测不到后面挂买盘单子来。

cnt := 100001 // 这里数值改为小一些的没毛病,比如10001。但100001就非常非常慢的挂单
for i := 0; i < cnt; i++ {
  orderId := uuid.NewString()
  orderId = fmt.Sprintf("a-%s", orderId)
  item := trading_engine.NewAskLimitItem(orderId, randDecimal(20, 50), randDecimal(20, 100), time.Now().UnixNano())
  btcusdt.PushNewOrder(item)
}

t := time.Now()
orderId := uuid.NewString()
orderId = fmt.Sprintf("b-%s", orderId)
item := trading_engine.NewBidLimitItem(orderId, decimal.NewFromInt(101), decimal.NewFromInt(100002), time.Now().UnixNano())
btcusdt.PushNewOrder(item)

elapsed := time.Since(t)
fmt.Println("app elapsed:", elapsed)

ygcool avatar Sep 20 '23 06:09 ygcool

目前确实还不能支持太多数量的挂单。待优化吧! 现在先完整实现整体流程,后面有时间了我再来琢磨琢磨。

yzimhao avatar Sep 20 '23 14:09 yzimhao

已优化处理

yzimhao avatar Apr 22 '24 15:04 yzimhao