[gnome-shell/wip/swarm: 11/11] perf: Show apps perf
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/swarm: 11/11] perf: Show apps perf
- Date: Wed, 25 Jun 2014 17:46:04 +0000 (UTC)
commit ad4a2a5768520b60cddb26f3d8f7e5fd75ac2e6b
Author: Carlos Soriano <carlos soriano89 gmail com>
Date: Sat Mar 22 13:14:05 2014 +0100
perf: Show apps perf
js/perf/core.js | 72 +++++++++++++++++++++++++++++--------------------------
1 files changed, 38 insertions(+), 34 deletions(-)
---
diff --git a/js/perf/core.js b/js/perf/core.js
index 86f2c84..e4528bb 100644
--- a/js/perf/core.js
+++ b/js/perf/core.js
@@ -17,6 +17,12 @@ let METRICS = {
overviewFpsFirst:
{ description: "Frame rate when going to the overview, first time",
units: "frames / s" },
+ appsFpsFirst:
+ { description: "Frame rate when showing apps first time",
+ units: "frames / s" },
+ appsFps:
+ { description: "Frame rate when showing apps second time",
+ units: "frames / s" },
overviewLatencySubsequent:
{ description: "Time to first frame after triggering overview, second time",
units: "us"},
@@ -72,43 +78,9 @@ function run() {
Scripting.defineScriptEvent("applicationsShowStart", "Starting to switch to applications view");
Scripting.defineScriptEvent("applicationsShowDone", "Done switching to applications view");
- Main.overview.connect('shown', function() {
- Scripting.scriptEvent('overviewShowDone');
- });
yield Scripting.sleep(1000);
- for (let i = 0; i < 2 * WINDOW_CONFIGS.length; i++) {
- // We go to the overview twice for each configuration; the first time
- // to calculate the mipmaps for the windows, the second time to get
- // a clean set of numbers.
- if ((i % 2) == 0) {
- let config = WINDOW_CONFIGS[i / 2];
- yield Scripting.destroyTestWindows();
-
- for (let k = 0; k < config.count; k++)
- yield Scripting.createTestWindow(config.width, config.height, config.alpha,
config.maximized);
-
- yield Scripting.waitTestWindows();
- yield Scripting.sleep(1000);
- yield Scripting.waitLeisure();
- }
-
- Scripting.scriptEvent('overviewShowStart');
- Main.overview.show();
-
- yield Scripting.waitLeisure();
- Main.overview.hide();
- yield Scripting.waitLeisure();
-
- System.gc();
- yield Scripting.sleep(1000);
- Scripting.collectStatistics();
- Scripting.scriptEvent('afterShowHide');
- }
-
- yield Scripting.destroyTestWindows();
- yield Scripting.sleep(1000);
Main.overview.show();
yield Scripting.waitLeisure();
@@ -117,6 +89,7 @@ function run() {
Scripting.scriptEvent('applicationsShowStart');
Main.overview._dash.showAppsButton.checked = true;
yield Scripting.waitLeisure();
+ Scripting.collectStatistics();
Scripting.scriptEvent('applicationsShowDone');
Main.overview._dash.showAppsButton.checked = false;
yield Scripting.waitLeisure();
@@ -134,6 +107,9 @@ let firstOverviewUsedSize;
let haveSwapComplete = false;
let applicationsShowStart;
let applicationsShowCount = 0;
+let showingApps = false;
+let appsFrames;
+let finishedShowingApps = false;
function script_overviewShowStart(time) {
showingOverview = true;
@@ -151,6 +127,9 @@ function script_overviewShowDone(time) {
function script_applicationsShowStart(time) {
applicationsShowStart = time;
+ showingApps = true;
+ appsFrames = 0;
+ finishedShowingApps = false;
}
function script_applicationsShowDone(time) {
@@ -159,6 +138,7 @@ function script_applicationsShowDone(time) {
METRICS.applicationsShowTimeFirst.value = time - applicationsShowStart;
else
METRICS.applicationsShowTimeSubsequent.value = time - applicationsShowStart;
+ finishedShowingApps = true;
}
function script_afterShowHide(time) {
@@ -180,6 +160,30 @@ function _frameDone(time) {
overviewFrames++;
}
+
+ if (showingApps) {
+ if (appsFrames == 0)
+ appsLatency = time - applicationsShowStart;
+
+ appsFrames++;
+ }
+
+ if (finishedShowingApps) {
+ showingApps = false;
+ finishedShowingApps = false;
+
+ let dt = (time - (applicationsShowStart + appsLatency)) / 1000000;
+
+ // If we see a start frame and an end frame, that would
+ // be 1 frame for a FPS computation, hence the '- 1'
+ let fps = (appsFrames - 1) / dt;
+
+ if (applicationsShowCount == 1) {
+ METRICS.appsFpsFirst.value = fps;
+ } else if (applicationsShowCount == 2) {
+ METRICS.appsFps.value = fps;
+ }
+ }
if (finishedShowingOverview) {
showingOverview = false;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]