Переглянути джерело

当内存发生变化时才推送

zhouhao 5 роки тому
батько
коміт
e4c5bf7ff8

+ 4 - 2
jetlinks-components/dashboard-component/src/main/java/org/jetlinks/community/dashboard/measurements/JvmMemoryMeasurementProvider.java

@@ -97,9 +97,11 @@ public class JvmMemoryMeasurementProvider extends StaticMeasurementProvider {
 
         @Override
         public Flux<MeasurementValue> getValue(MeasurementParameter parameter) {
-            // TODO: 2020/1/15 性能优化
             return Flux.interval(Duration.ofSeconds(1))
-                .map(t -> SimpleMeasurementValue.of(MemoryInfo.of(memoryMXBean.getHeapMemoryUsage()),
+                .map(t -> MemoryInfo.of(memoryMXBean.getHeapMemoryUsage()))
+                .windowUntilChanged(MemoryInfo::getUsage)
+                .flatMap(Flux::last)
+                .map(val -> SimpleMeasurementValue.of(val,
                     DateFormatter.toString(new Date(), "HH:mm:ss"),
                     System.currentTimeMillis()))
                 .cast(MeasurementValue.class);