/// <summary> /// Starts the command /// </summary> public override void Run() { IProject currentProj = ProjectService.CurrentProject; string path = currentProj.GetSessionFileName(); Directory.CreateDirectory(Path.GetDirectoryName(path)); IProfilingDataWriter writer = new ProfilingDataSQLiteWriter(path, false, null); ProfilerRunner runner = ProfilerRunner.CreateRunner(writer); if (runner != null) { runner.RunFinished += delegate { currentProj.AddSessionToProject(path); }; runner.Run(); } }
public void FixtureSetUp() { if (File.Exists(databaseFileName)) File.Delete(databaseFileName); NameMapping method0 = new NameMapping(0, "r0", "m0", new List<string>()); NameMapping method1 = new NameMapping(1, "r1", "m1", new List<string>()); NameMapping method2 = new NameMapping(2, "r2", "m2", new List<string>()); using (var writer = new ProfilingDataSQLiteWriter(databaseFileName)) { writer.ProcessorFrequency = 2000; // MHz writer.WriteMappings(new[] { method0, method1, method2 } ); CallTreeNodeStub dataSet; dataSet = new CallTreeNodeStub { NameMappingValue = method0, AddChildren = { new CallTreeNodeStub { NameMappingValue = method1, RawCallCountValue = 10, CpuCyclesSpentValue = 500 * k } } }; writer.WriteDataSet(new DataSetStub { IsFirst = true, RootNode = dataSet }); dataSet = new CallTreeNodeStub { NameMappingValue = method0, IsActiveAtStartValue = true, AddChildren = { new CallTreeNodeStub { NameMappingValue = method1, RawCallCountValue = 0, IsActiveAtStartValue = true, CpuCyclesSpentValue = 200 * k }, new CallTreeNodeStub { NameMappingValue = method2, RawCallCountValue = 1, CpuCyclesSpentValue = 300 * k } } }; writer.WriteDataSet(new DataSetStub { IsFirst = false, RootNode = dataSet }); dataSet = new CallTreeNodeStub { NameMappingValue = method0, IsActiveAtStartValue = true, AddChildren = { new CallTreeNodeStub { NameMappingValue = method2, RawCallCountValue = 0, IsActiveAtStartValue = true, CpuCyclesSpentValue = 50 * k, AddChildren = { new CallTreeNodeStub { NameMappingValue = method1, RawCallCountValue = 5, CpuCyclesSpentValue = 1 * k } } } } }; writer.WriteDataSet(new DataSetStub { IsFirst = false, RootNode = dataSet }); writer.Close(); } provider = ProfilingDataSQLiteProvider.UpgradeFromOldVersion(databaseFileName); }
void profiler_SessionEnded(object sender, EventArgs e) { string pathToDb = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(typeof(Profiler.Controller.Profiler).Assembly.Location), "output.sdps"); ProfilingDataSQLiteWriter writer = new ProfilingDataSQLiteWriter(pathToDb, false, null); this.database.WriteTo(writer, progress => true); writer.Close(); this.database.Close(); this.provider = new ProfilingDataSQLiteProvider(pathToDb); this.Dispatcher.Invoke( (Action)( () => { try { this.treeView.Provider = this.provider; RefreshUI(0, 0); this.timeLine.IsEnabled = true; //this.timeLine.ValuesList.Clear(); //this.timeLine.ValuesList.AddRange(this.provider.DataSets.Select(i => i.CpuUsage)); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); MessageBox.Show(ex.ToString()); } } ) ); }