|
14 | 14 |
|
15 | 15 | import org.damon233.performtrackermod.PerformTracker; |
16 | 16 | import org.damon233.performtrackermod.collector.ServerMetricsCollector; |
17 | | -import org.damon233.performtrackermod.collector.SystemInfoCollector; |
18 | 17 | import org.damon233.performtrackermod.collector.IFpsProvider; |
19 | 18 | import org.damon233.performtrackermod.config.ConfigAccess; |
20 | 19 | import org.damon233.performtrackermod.data.PerformanceMetrics; |
@@ -44,6 +43,9 @@ public class TrackerController { |
44 | 43 | private MinecraftServer server; |
45 | 44 | private String currentOutputFormat; |
46 | 45 |
|
| 46 | + private final Object[] rowValuesBuffer = new Object[6]; |
| 47 | + private final StringBuilder chatMessageBuilder = new StringBuilder(256); |
| 48 | + |
47 | 49 | public TrackerController(ServerMetricsCollector serverCollector, IFpsProvider fpsProvider) { |
48 | 50 | this.serverCollector = serverCollector; |
49 | 51 | this.fpsProvider = fpsProvider; |
@@ -222,47 +224,46 @@ private void outputMetrics() { |
222 | 224 | } |
223 | 225 |
|
224 | 226 | private String buildChatMessage(PerformanceMetrics metrics) { |
225 | | - StringBuilder sb = new StringBuilder(); |
| 227 | + chatMessageBuilder.setLength(0); |
226 | 228 | boolean first = true; |
227 | 229 | if (ConfigAccess.isCollectFps()) { |
228 | | - if (!first) sb.append(" | "); |
229 | | - sb.append(TranslationService.colorLabel("FPS: ")).append(TranslationService.colorValue(String.format("%.1f", metrics.fps()))); |
| 230 | + if (!first) chatMessageBuilder.append(" | "); |
| 231 | + chatMessageBuilder.append(TranslationService.colorLabel("FPS: ")).append(TranslationService.colorValue(String.format("%.1f", metrics.fps()))); |
230 | 232 | first = false; |
231 | 233 | } |
232 | 234 | if (ConfigAccess.isCollectTps()) { |
233 | | - if (!first) sb.append(" | "); |
234 | | - sb.append(TranslationService.colorLabel("TPS: ")).append(TranslationService.colorValue(PerformanceMetrics.formatValue(metrics.tps()))); |
| 235 | + if (!first) chatMessageBuilder.append(" | "); |
| 236 | + chatMessageBuilder.append(TranslationService.colorLabel("TPS: ")).append(TranslationService.colorValue(PerformanceMetrics.formatValue(metrics.tps()))); |
235 | 237 | first = false; |
236 | 238 | } |
237 | 239 | if (ConfigAccess.isCollectMspt()) { |
238 | | - if (!first) sb.append(" | "); |
239 | | - sb.append(TranslationService.colorLabel("MSPT: ")).append(TranslationService.colorValue(PerformanceMetrics.formatValue(metrics.mspt()))); |
| 240 | + if (!first) chatMessageBuilder.append(" | "); |
| 241 | + chatMessageBuilder.append(TranslationService.colorLabel("MSPT: ")).append(TranslationService.colorValue(PerformanceMetrics.formatValue(metrics.mspt()))); |
240 | 242 | first = false; |
241 | 243 | } |
242 | 244 | if (ConfigAccess.isCollectHeap()) { |
243 | | - if (!first) sb.append(" | "); |
244 | | - sb.append(TranslationService.colorLabel("Heap: ")) |
| 245 | + if (!first) chatMessageBuilder.append(" | "); |
| 246 | + chatMessageBuilder.append(TranslationService.colorLabel("Heap: ")) |
245 | 247 | .append(TranslationService.colorValue(PerformanceMetrics.formatMemoryMB(metrics.heapUsed()))) |
246 | 248 | .append(" / ") |
247 | 249 | .append(TranslationService.colorValue(PerformanceMetrics.formatMemoryMB(metrics.heapMax()))); |
248 | 250 | } |
249 | 251 | if (ConfigAccess.isCollectCpu()) { |
250 | | - if (!first) sb.append(" | "); |
251 | | - sb.append(TranslationService.colorLabel("CPU: ")) |
| 252 | + if (!first) chatMessageBuilder.append(" | "); |
| 253 | + chatMessageBuilder.append(TranslationService.colorLabel("CPU: ")) |
252 | 254 | .append(TranslationService.colorValue(String.format("%.1f%%", metrics.cpuUsage()))); |
253 | 255 | } |
254 | | - return sb.toString(); |
| 256 | + return chatMessageBuilder.toString(); |
255 | 257 | } |
256 | | - |
| 258 | + |
257 | 259 | private Object[] buildRowValues(PerformanceMetrics metrics) { |
258 | | - return new Object[]{ |
259 | | - ConfigAccess.isCollectFps() ? metrics.fps() : Double.NaN, |
260 | | - ConfigAccess.isCollectTps() ? metrics.tps() : Double.NaN, |
261 | | - ConfigAccess.isCollectMspt() ? metrics.mspt() : Double.NaN, |
262 | | - ConfigAccess.isCollectHeap() ? metrics.heapUsed() : Double.NaN, |
263 | | - ConfigAccess.isCollectHeap() ? metrics.heapMax() : Double.NaN, |
264 | | - ConfigAccess.isCollectCpu() ? metrics.cpuUsage() : Double.NaN |
265 | | - }; |
| 260 | + rowValuesBuffer[0] = ConfigAccess.isCollectFps() ? metrics.fps() : Double.NaN; |
| 261 | + rowValuesBuffer[1] = ConfigAccess.isCollectTps() ? metrics.tps() : Double.NaN; |
| 262 | + rowValuesBuffer[2] = ConfigAccess.isCollectMspt() ? metrics.mspt() : Double.NaN; |
| 263 | + rowValuesBuffer[3] = ConfigAccess.isCollectHeap() ? metrics.heapUsed() : Double.NaN; |
| 264 | + rowValuesBuffer[4] = ConfigAccess.isCollectHeap() ? metrics.heapMax() : Double.NaN; |
| 265 | + rowValuesBuffer[5] = ConfigAccess.isCollectCpu() ? metrics.cpuUsage() : Double.NaN; |
| 266 | + return rowValuesBuffer; |
266 | 267 | } |
267 | 268 |
|
268 | 269 | public PerformanceMetrics getMetrics() { |
|
0 commit comments