QmlProfiler: Expose flush interval to user

Flushing data while the application is running can distort the results
because the flushing itself takes time. However, not flushing leads to
longer load times in the end and higher memory usage. The best strategy
depends on the application being analyzed and the users should decide
if they want to flush or not.

The settings infrastructure also paves the way for preserviing the
layout of the timeline and statistics views as well as the category
filters across sessions.

Change-Id: I2cdc37c7fc7eb9b05b6870955ddffaa712d6c956
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2015-08-28 12:50:46 +02:00
parent bd9b487584
commit f1ede40500
21 changed files with 691 additions and 3 deletions

View File

@@ -0,0 +1,65 @@
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
#include "qmlprofilerrunconfigurationaspect.h"
#include "qmlprofilersettings.h"
#include "qmlprofilerplugin.h"
#include "qmlprofilerconstants.h"
#include <analyzerbase/analyzerrunconfigwidget.h>
namespace QmlProfiler {
namespace Internal {
QmlProfilerRunConfigurationAspect::QmlProfilerRunConfigurationAspect(
ProjectExplorer::RunConfiguration *parent) :
ProjectExplorer::IRunConfigurationAspect(parent)
{
setProjectSettings(new QmlProfilerSettings());
setGlobalSettings(QmlProfilerPlugin::globalSettings());
setId(Constants::SETTINGS);
setDisplayName(tr("QML Profiler Settings"));
setUsingGlobalSettings(true);
resetProjectToGlobalSettings();
}
ProjectExplorer::IRunConfigurationAspect *QmlProfilerRunConfigurationAspect::create(
ProjectExplorer::RunConfiguration *runConfig) const
{
return new QmlProfilerRunConfigurationAspect(runConfig);
}
ProjectExplorer::RunConfigWidget *QmlProfilerRunConfigurationAspect::createConfigurationWidget()
{
return new Analyzer::AnalyzerRunConfigWidget(this);
}
} // Internal
} // QmlProfiler