diff options
Diffstat (limited to 'ui/src/controller/cpu_profile_controller.ts')
-rw-r--r-- | ui/src/controller/cpu_profile_controller.ts | 33 |
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 }); |