aboutsummaryrefslogtreecommitdiff
path: root/ui/src/controller/cpu_profile_controller.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/controller/cpu_profile_controller.ts')
-rw-r--r--ui/src/controller/cpu_profile_controller.ts33
1 files changed, 18 insertions, 15 deletions
diff --git a/ui/src/controller/cpu_profile_controller.ts b/ui/src/controller/cpu_profile_controller.ts
index 05e03e9d5..932fb6473 100644
--- a/ui/src/controller/cpu_profile_controller.ts
+++ b/ui/src/controller/cpu_profile_controller.ts
@@ -13,9 +13,10 @@
// limitations under the License.
import {Engine} from '../common/engine';
-import {slowlyCountRows} from '../common/query_iterator';
+import {NUM, STR} from '../common/query_result';
import {CallsiteInfo, CpuProfileSampleSelection} from '../common/state';
import {CpuProfileDetails} from '../frontend/globals';
+import {publishCpuProfileDetails} from '../frontend/publish';
import {Controller} from './controller';
import {globals} from './globals';
@@ -50,7 +51,7 @@ export class CpuProfileController extends Controller<'main'> {
}
this.requestingData = true;
- globals.publish('CpuProfileDetails', {});
+ publishCpuProfileDetails({});
this.lastSelectedSample = this.copyCpuProfileSample(selection);
this.getSampleData(selectedSample.id)
@@ -65,7 +66,7 @@ export class CpuProfileController extends Controller<'main'> {
stack: sampleData,
};
- globals.publish('CpuProfileDetails', cpuProfileDetails);
+ publishCpuProfileDetails(cpuProfileDetails);
}
})
.finally(() => {
@@ -106,7 +107,7 @@ export class CpuProfileController extends Controller<'main'> {
// 5. Sort the query by the depth of the callstack frames.
const sampleQuery = `
SELECT
- samples.id,
+ samples.id as id,
IFNULL(
(
SELECT name
@@ -115,8 +116,8 @@ export class CpuProfileController extends Controller<'main'> {
LIMIT 1
),
spf.name
- ) AS frame_name,
- spm.name AS mapping_name
+ ) AS name,
+ spm.name AS mapping
FROM cpu_profile_stack_sample AS samples
LEFT JOIN (
SELECT
@@ -143,24 +144,26 @@ export class CpuProfileController extends Controller<'main'> {
const callsites = await this.args.engine.query(sampleQuery);
- if (slowlyCountRows(callsites) < 1) {
+ if (callsites.numRows() === 0) {
return undefined;
}
- const sampleData: CallsiteInfo[] = new Array();
- for (let i = 0; i < slowlyCountRows(callsites); i++) {
- const id = +callsites.columns[0].longValues![i];
- const name = callsites.columns[1].stringValues![i];
- const mapping = callsites.columns[2].stringValues![i];
+ const it = callsites.iter({
+ id: NUM,
+ name: STR,
+ mapping: STR,
+ });
+ const sampleData: CallsiteInfo[] = new Array();
+ for (; it.valid(); it.next()) {
sampleData.push({
- id,
+ id: it.id,
totalSize: 0,
depth: 0,
parentId: 0,
- name,
+ name: it.name,
selfSize: 0,
- mapping,
+ mapping: it.mapping,
merged: false,
highlighted: false
});