private void OnLockStateChanged(bool locked) { if (!locked) { data = CompilationData.GetAll(); } }
private static CompilationData ConvertBeeDataToCompilationData() { const string ProfilerJson = "Library/Bee/profiler.json"; if (!File.Exists(ProfilerJson)) { return(null); } try { var beeData = JsonUtility.FromJson <BeeProfilerData>( File.ReadAllText(ProfilerJson)); // "profiler.json")); // "Library/Bee/profiler.json")); if (beeData.traceEvents == null || !beeData.traceEvents.Any()) { return(null); } beeData.traceEvents = beeData.traceEvents .Where(x => x.ts > 0) .OrderBy(x => x.ts) .ToList(); var ticksPerMicrosecond = TimeSpan.TicksPerMillisecond / 1000; var firstTs = beeData.traceEvents.First().ts; var lastTs = beeData.traceEvents.Last().ts; var beeCompilationSpan = lastTs - firstTs; var unityCompilationSpan = (TraceData.instance.CompilationFinished - TraceData.instance.CompilationStarted).Ticks / ticksPerMicrosecond; var compilationSpanOffset = Math.Max(0, unityCompilationSpan - beeCompilationSpan); var offsetToFirstTs = TraceData.instance.CompilationStarted.Ticks / ticksPerMicrosecond - firstTs + compilationSpanOffset; var cc = new CompilationData() { CompilationStarted = TraceData.instance.CompilationStarted, CompilationFinished = TraceData.instance.CompilationFinished, AfterAssemblyReload = TraceData.instance.AfterAssemblyReload, BeforeAssemblyReload = TraceData.instance.BeforeAssemblyReload, compilationData = beeData.traceEvents .Where(x => x.name.Equals("Csc", StringComparison.Ordinal) && x.args.detail != null) .Select(x => new AssemblyCompilationData() { assembly = "Library/ScriptAssemblies/" + Path.GetFileName(x.args.detail.Split(' ').FirstOrDefault()), StartTime = new DateTime((x.ts + offsetToFirstTs) * ticksPerMicrosecond), EndTime = new DateTime((x.ts + offsetToFirstTs + x.dur) * ticksPerMicrosecond), }) .ToList() }; // var beeCompilationStarted = new DateTime((beeData.traceEvents.First().ts) * conv); // var beeCompilationFinished = new DateTime((beeData.traceEvents.Last().ts) * conv); // Debug.Log(beeCompilationStarted + " - " + cc.CompilationStarted + ", " + beeCompilationFinished + " - " + cc.CompilationFinished); // foreach (var asm in cc.compilationData) // Debug.Log(asm); return(cc); } catch (Exception e) { Debug.LogException(e); return(null); } }