|
@@ -7,6 +7,8 @@ use rust_decimal::prelude::ToPrimitive;
|
|
|
pub struct TraceStack {
|
|
pub struct TraceStack {
|
|
|
pub before_network: i64, // 官方数据生成时间
|
|
pub before_network: i64, // 官方数据生成时间
|
|
|
pub after_network: i64, // 到达网络层时间
|
|
pub after_network: i64, // 到达网络层时间
|
|
|
|
|
+
|
|
|
|
|
+ pub before_unlock_quant: i64, // 解锁quant之前的时间
|
|
|
pub before_quant: i64, // quant层执行开始时间(也是通道+锁走完后的时间)
|
|
pub before_quant: i64, // quant层执行开始时间(也是通道+锁走完后的时间)
|
|
|
pub after_quant: i64, // quant层执行结束时间
|
|
pub after_quant: i64, // quant层执行结束时间
|
|
|
|
|
|
|
@@ -33,6 +35,10 @@ impl TraceStack {
|
|
|
self.after_network = after_network;
|
|
self.after_network = after_network;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ pub fn on_before_unlock_quant(&mut self) {
|
|
|
|
|
+ self.before_unlock_quant = Utc::now().timestamp_micros();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
pub fn on_before_quant(&mut self) {
|
|
pub fn on_before_quant(&mut self) {
|
|
|
self.before_quant = Utc::now().timestamp_micros();
|
|
self.before_quant = Utc::now().timestamp_micros();
|
|
|
}
|
|
}
|
|
@@ -101,8 +107,12 @@ impl fmt::Display for TraceStack {
|
|
|
msg.push_str(format!("本地总耗时{}微秒 ", self.before_send - self.after_network).as_str());
|
|
msg.push_str(format!("本地总耗时{}微秒 ", self.before_send - self.after_network).as_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if self.before_quant != 0 && self.before_unlock_quant != 0 {
|
|
|
|
|
+ msg.push_str(format!("解锁quant{}微秒 ", self.before_quant - self.before_unlock_quant).as_str());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if self.after_network != 0 && self.after_strategy != 0 {
|
|
if self.after_network != 0 && self.after_strategy != 0 {
|
|
|
- msg.push_str(format!("直到quant{}微秒 ", self.after_strategy - self.after_network).as_str());
|
|
|
|
|
|
|
+ msg.push_str(format!("quant走完{}微秒 ", self.after_strategy - self.after_network).as_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if self.before_network != 0 && self.after_network != 0 {
|
|
if self.before_network != 0 && self.after_network != 0 {
|
|
@@ -148,6 +158,7 @@ impl Default for TraceStack {
|
|
|
after_network: 0,
|
|
after_network: 0,
|
|
|
before_format: 0,
|
|
before_format: 0,
|
|
|
after_format: 0,
|
|
after_format: 0,
|
|
|
|
|
+ before_unlock_quant: 0,
|
|
|
before_quant: 0,
|
|
before_quant: 0,
|
|
|
after_quant: 0,
|
|
after_quant: 0,
|
|
|
before_strategy: 0,
|
|
before_strategy: 0,
|