浏览代码

fix unefficient removal of excessive data by batching them

Berke 1 年之前
父节点
当前提交
85504a311e
共有 1 个文件被更改,包括 5 次插入9 次删除
  1. 5 9
      src/charts/heatmap.rs

+ 5 - 9
src/charts/heatmap.rs

@@ -145,15 +145,11 @@ impl HeatmapChart {
             .collect();
         
         self.data_points.insert(rounded_depth_update, (grouped_depth, grouped_trades));
-        
-        while self.data_points.len() > 3600 {
-            if let Some((&key_to_remove, _)) = self.data_points.first_key_value() {
-                self.data_points.remove(&key_to_remove);
-                if self.data_points.len() <= 3000 {
-                    break;
-                }
-            } else {
-                break;
+    
+        if self.data_points.len() > 2400 {
+            let keys_to_remove: Vec<_> = self.data_points.keys().take(600).cloned().collect();
+            for key in keys_to_remove {
+                self.data_points.remove(&key);
             }
         }