利用Salesforce Developer Console进行性能分析实战

本文通过实例演示如何使用DeveloperConsole和DeveloperWorkbench检测并优化Salesforce代码性能,重点关注DB查询优化,提供快捷键和配置建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言】:绝大多数时候,我们只是简单地使用了sf developer console最基础的功能来调试我们的代码,比如查看log,运行测试类,执行soql查询和匿名窗口的代码片段。本篇将着重介绍console的一些高级用法,来说明它是如何帮助我们优化代码以提高性能的。

情景引入】:A公司想要知道除"Canceled"阶段外的所有Opportunity在不同阶段的数量及价格统计,Developer为此提供了下面代码。为了分析代码的性能,Developer使用了Developer Console和Developer Workbench来查看资源在运行时,影响加载时间的关键因素指标,从而得到优化性能的解决方案。

代码示例】:OppController.cls & OppPage.vf

public class OppController {
    public List<AggregateResult> lstAgg = new List<AggregateResult>();
    public OppController() {
        lstAgg = [SELECT StageName, SUM(Amount) Amount, COUNT(Id) Total 
                  FROM Opportunity 
                  WHERE IsClosed = false AND StageName != 'Canceled' 
                  GROUP BY StageName];
    }

    public List<OppAgg> getResults() {
        List<OppAgg> lstResult = new List<OppAgg>();
        for(AggregateResult ar : lstAgg) {
            OppAgg objOppAgg = new OppAgg(ar);
            lstResult.add(objOppAgg);
        }
        return lstResult;
    }

    class OppAgg {
        public Integer Total {get;set;}
        public String StageName {get;set;}
        public Decimal Amount {get;set;}
        public OppAgg (AggregateResult ar) {
            Total = (Integer)ar.get('Total');
            StageName = (String)ar.get('StageName');
            Amount = (Decimal)ar.get('Amount');
        }
    }
}
<apex:page sidebar="false" controller="OppController">
    <apex:pageBlock title="Sales Aggregate">
        <apex:pageBlockTable value="{!Results}" var="ar">
            <apex:column headerValue="Stage Name" value="{!ar.StageName}" />
            <apex:column headerValue="Total Amount" value="{!ar.Amount}" />
            <apex:column headerValue="No of Opportunities" value="{!ar.Total}" />
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:page>

页面效果预览:

性能检测】:

额外分析工具:Developer Workbench

结果及方案】:
我们通过性能数发现影响性能的关键因素时DB查询,并通过Timeline我们能更直观的看到查询在整个资源运行时耗时较长,因此,我们可以通过优化查询来解决这一事件的性能问题

常用快捷键】:
1. 查看快捷:Ctrl + Shift + "/";

2. 打开并检索资源(特别是查看某对象的字段定义):Ctrl + Shift + "O";

3. 关闭console窗口中的所有Tab:Ctrl + Alt + "/";
4. 打开原生Log:Ctrl + Shift + "G";

5. 查看Log Panels -> Select panels for current log(因此你必须先打开Log才能使用快捷键调出):Ctrl + "P";
常用配置:

6. 使用Debug -> Switch Perspective -> Analysis (Predefined) -> Timeline查看占用时间较长的项;

拓展与延伸】:事务中保存顺序监测

参考资源】:Log Inspector

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值