private IEnumerator CreateActualReport() { if (currentReport != null) { yield break; } else { currentReport = new PerformanceDump(); } var sw = new Stopwatch(); sw.Start(); CompletePluginsReport(); ServerMgr.Instance.StartCoroutine(CompleteEntitiesReport()); while (currentReport.entities.completed == false && config.runEntitiesReport == true) { Puts($"Report status: {currentReport.statusBar}% [{currentReport.entitiesChecked}/{currentReport.entitiesTotal}]"); yield return(new WaitForSecondsRealtime(3f)); } SaveReport(currentReport); currentReport = null; sw.Stop(); Puts($"Performance report was completed in {Time()}"); LogToFile("events", $"Performance report was completed in {Time()}, it taken {sw.ElapsedMilliseconds}ms", this); }
private void SaveReport(PerformanceDump dump) { var name1 = DateTime.Now.ToString("dd/MM/yyyy").Replace("/", "-"); var name2 = DateTime.Now.ToString(Time()).Replace(':', '-'); var filename = $"PerformanceMonitor/Reports/{name1}/{name2}"; Interface.Oxide.DataFileSystem.WriteObject(filename, dump); }