Page 1923 Profiling Duration By Object, source in 26
Source242526272829metadata in 26
src/System Application/App/Performance Profiler/src/ProfilingDurationByObject.Page.al87 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.Tooling;
/// <summary>
/// The list showing the breakdown of time spent by application object on the performance profiler page.
/// </summary>
page 1923 "Profiling Duration By Object"
{
Caption = 'Time Spent by Application Object';
PageType = ListPart;
SourceTable = "Profiling Node";
InsertAllowed = false;
DeleteAllowed = false;
ModifyAllowed = false;
Editable = false;
InherentEntitlements = X;
InherentPermissions = X;
layout
{
area(Content)
{
repeater("Duration per application object")
{
Editable = false;
FreezeColumn = "Object Name";
field("Object Type"; Rec."Object Type")
{
ApplicationArea = All;
Caption = 'Object Type';
ToolTip = 'Specifies the type of the application object.';
}
field("Object Name"; Rec."Object Name")
{
ApplicationArea = All;
Caption = 'Object Name';
ToolTip = 'Specifies the name of the application object.';
}
field("Time Spent"; Rec."Self Time")
{
ApplicationArea = All;
Caption = 'Time Spent';
ToolTip = 'Specifies the amount of time spent in this application object.';
trigger OnDrillDown()
var
ProfilingDurationByMethod: Page "Profiling Duration By Method";
begin
ProfilingDurationByMethod.Initialize(Rec."Object Type", Rec."Object ID");
ProfilingDurationByMethod.RunModal();
end;
}
field("App Name"; Rec."App Name")
{
ApplicationArea = All;
Caption = 'App Name';
ToolTip = 'Specifies the name of the app that the application object belongs to.';
}
}
}
}
trigger OnOpenPage()
begin
UpdateData();
end;
internal procedure UpdateData()
var
ProfilingDataProcessor: Codeunit "Profiling Data Processor";
begin
Rec.DeleteAll();
Rec.SetCurrentKey("Object Type", "Object ID");
ProfilingDataProcessor.GetSelfTimeAggregate(Rec, Enum::"Profiling Aggregation Type"::Object);
Rec.SetCurrentKey("Self Time");
Rec.Ascending(false);
Rec.FindFirst();
end;
}