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());
                }
            }
                    )
                );
        }
Exemplo n.º 2
0
        /// <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);
            ProfilerRunner       runner = ProfilerRunner.CreateRunner(writer);

            if (runner != null)
            {
                runner.RunFinished += delegate { currentProj.AddSessionToProject(path); };
                runner.Run();
            }
        }
Exemplo n.º 3
0
        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);
        }