@Nullable
  public static BuildMessage create(@NotNull MemoryMXBean memory, @NotNull OperatingSystemMXBean os) {
    CpuMemoryStatistics statistics = new CpuMemoryStatistics();
    statistics.heapUsed = memory.getHeapMemoryUsage().getUsed();
    statistics.heapMax = memory.getHeapMemoryUsage().getMax();
    statistics.nonHeapUsed = memory.getNonHeapMemoryUsage().getUsed();
    statistics.nonHeapMax = memory.getNonHeapMemoryUsage().getMax();

    double cpuLoad = 0;
    int maxRetries = 5;
    while (maxRetries --> 0 && cpuLoad <= 0) {
      cpuLoad = os.getSystemCpuLoad();
    }
    if (cpuLoad < 0) return null;
    statistics.cpu = (long)(cpuLoad * 100);

    return new CompileStatisticBuilderMessage("STATISTIC", JSON.toJson(statistics));
  }
@Nullable
  public static BuildMessage create(@NotNull MemoryMXBean memory, @NotNull OperatingSystemMXBean os)