SlideShare a Scribd company logo
1 of 43
Salesforce Apex Hours
Apex Code Benchmarking
#SalesforceApexHours #FarmingtonHillsSFDCDug
Speaker
Date
Venue/Link
Purushottam Bhaigade , Amit Chaudhary
Saturday, Dec 7, 2019 10:00 AM EST ( 8:30 PM IST )
Online
Farmington Hills Salesforce Developer User Group
Who am I ?
Amit Chaudhary (Salesforce MVP)
• Active on Salesforce Developer Community
• Blogging at http://amitsalesforce.blogspot.in/
• Co-Organizer of – FarmingtonHillsSFDCDug
• Follow us @Amit_SFDC or @ApexHours
#SalesforceApexHours #FarmingtonHillsSFDCDug
Our Speaker
#SalesforceApexHours #FarmingtonHillsSFDCDug
Purushottam Bhaigade
• Technical Evangelist, Eternus Solutions
• Content Leader of – Pune Salesforce Developer Group
• Co-Organizer of – Pune Salesforce Architect Summit
• Speaker (IndiaDreamin 2X, Hyderabad Trailblazin, Apex
Hours for Students, Pune Salesforce DUG)
• Blogging at https://forcefeed.dev/
@bhaigadepuru
/in/purushottambhaigade
#FarmingtonHillsSFDCdug #SalesforceApexHours
Agenda
• Cost of Code
• CPU time Limit
• Benchmarking technique for Code
• Benchmarking technique for Declarative
• Demo
#FarmingtonHillsSFDCdug #SalesforceApexHours
Before Winter’14
• Script limit – Total number of line of Apex code executed
• Separate limits for each Managed Package (Aloha)
• Trigger Context – 200,000 lines
• Async (Batch & Future) – 1,000,000 lines
• Workflow, Process Builders, Formulas has no limits at all
Trigger
#FarmingtonHillsSFDCdug #SalesforceApexHours
What Changed after
Winter’14 ?
#FarmingtonHillsSFDCdug #SalesforceApexHours
Script Limit were
changed to calculate
CPU Time usage
#FarmingtonHillsSFDCdug #SalesforceApexHours
CPU Time Limits
Asynchronous Context
60 Seconds
Apply to All code, including Package
code
Apply to declarative :Workflows, Process
Builder, Flows, Validation Rules, Formulas
etc.
Trigger Context
10 Seconds
Apply to All code, including Package
code
Apply to declarative :Workflows,
Process Builder, Flows, Validation Rules,
Formulas etc.
Enough time
for everyone
#FarmingtonHillsSFDCdug #SalesforceApexHours
Shared CPU Time
Package 1 Package 2 Local Code
Workflow
Automation
etc.
Trigger
10
Seconds
Trigger
10
Seconds
#FarmingtonHillsSFDCdug #SalesforceApexHours
Do you like Maths?
Lets Calculate CPU time limits per
record…
#FarmingtonHillsSFDCdug #SalesforceApexHours
Asynchronous Context
60 / 200 = 300
(milliseconds)
Batch of 200 Records
Trigger Context
10 / 200 = 50
(milliseconds)
Batch of 1000 Records
Trigger Context
10 / 1000 = 10
(milliseconds)
Asynchronous Context
60 / 1000 = 60
(milliseconds)
#FarmingtonHillsSFDCdug #SalesforceApexHours
By the way it applies to all code
including local code, packaged code
and declarative as well
#FarmingtonHillsSFDCdug #SalesforceApexHours
Consequences
• You have installed more number of packages? Probably
you are at greater risk of running into limits.
• Your managed packaged was release before winter’14
and have passed script limit rule it doesn’t mean now it will
not hit CPU limit.
#FarmingtonHillsSFDCdug #SalesforceApexHours
It’s App A or B? Who gets Blame?
App A uses 9.5 seconds
App B uses 1
second
CPU time out is here..
And App B gets blame..!!
#FarmingtonHillsSFDCdug #SalesforceApexHours
Why Software Benchmarking is
hard?
• Time measurement can’t trusted always, because system
performance varies based on time of day and momentary load.
• Debug log cost CPU time
• You don’t have control on background operations like garbage
collection
• Result might change with each patch release
#FarmingtonHillsSFDCdug #SalesforceApexHours
Benchmarking Apex Code
#FarmingtonHillsSFDCdug #SalesforceApexHours
Static vs Dynamic Apex
public static void StaticVsDynamicDML()
{
Integer startCPUTime;
// Grab a contact
Contact ct = [Select Id, AccountId from Contact where LastName Like 'testcontact%' Limit 1];
ID sourceid = ct.AccountID;
ID actid;
startCPUTime = Limits.getCpuTime();
for(Integer x=0; x< 100000; x++)
{
// Put what you are measuring in here
}
System.debug(LoggingLevel.Error, ' ElapsedCPUTime = ' + String.ValueOf(Limits.getCpuTime()-
startCPUTime));
}
#FarmingtonHillsSFDCdug #SalesforceApexHours
Single Assignment
~ 0.00422 milliseconds for
assignment in loop (422 ms/100000)
~ 0.002171 milliseconds for single
assignment in loop (2171 ms/100000/10)
for(Integer x=0; x< 100000; x++)
{
actid = sourceid;
}
for(Integer x=0; x< 100000; x++)
{
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
actid = sourceid;
}
#FarmingtonHillsSFDCdug #SalesforceApexHours
Dynamic field Assignment
~ 0.02756 milliseconds for single
assignment in loop (2756 ms/10000/10)
for(Integer x=0; x< 10000; x++)
{
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
actid = (ID)ct.get('AccountID');
}
#FarmingtonHillsSFDCdug #SalesforceApexHours
Consequences
• Assignment from static field reference is 20x time slower than
variable assignment
• Assignment from dynamic field reference is 30x time slower
than static assignment
• Use temporary variable instead of referencing a field
multiple times!
#FarmingtonHillsSFDCdug #SalesforceApexHours
Apex Time Killers
#FarmingtonHillsSFDCdug #SalesforceApexHours
Describe information is cached, but not always as much as
you’ll need
Account.sObjectType.getDescirbe
1 ms first time, 0.015 ms subsequent
getGlobalDescribe 343 items:
13 ms first time, 1 ms subsequent
getGlobalDescribe 863 items:
22 ms first time, 6 ms subsequent
Conclusion :
You can rely on Describe caching for
most cases, but never put
getGlobalDescibe in loop. Do your own
caching – use singleton pattern
ISV’s use extra care – you don’t know
how big the org will be
#FarmingtonHillsSFDCdug #SalesforceApexHours
 Doing lots of Calculations ? Then use doubles instead of decimals
Doubles are 200 times faster
 Array Iteration
for (Account acc : array) – 4 microseconds (with assignment)
for (Integer count=0; count < array.size(); count++) – 2.5 microseconds
Integer arraySize = array.size();
for (Integer count=0; count < arraySize; count++) – 0.75 microseconds
#FarmingtonHillsSFDCdug #SalesforceApexHours
Serializing data
Conclusion :
Serializing data can eat up CPU time, depending
on the amount of data being serialized
The amount of CPU time it takes to serialize does
not necessarily double when the amount of data
is doubled – there’s a lot of variation
Similar result were found when serializing a list of
IDs
JSON.serialize() on 1 string: ~73 microseconds
JSON.serialize() on list of 50 string: ~1 ms (~20
microseconds per item)
JSON.serialize() on list of 100 string: ~1.9 ms (~18-
19 microseconds per item)
JSON.serialize() on list of 200 string: ~3.4 ms (~16-
17 microseconds per item)
JSON.serialize() on list of 400 string: ~7 ms (~17-18
microseconds per item)
#FarmingtonHillsSFDCdug #SalesforceApexHours
Benchmarking Declarative
#FarmingtonHillsSFDCdug #SalesforceApexHours
Time spent evaluating formulas for validation rules or
workflow are counted towards the limit.
Poor logic in
formula
Poorly-authored
apex logic
#FarmingtonHillsSFDCdug #SalesforceApexHours
#FarmingtonHillsSFDCdug #SalesforceApexHours
To benchmark declarative you need After
Trigger
public class LeadTriggerHandler {
public static Integer startTime;
public static void processLeadTrigger(){
if(startTime == null){
startTime = Limits.getCpuTime();
return;
}
system.debug(Logginglevel.error, 'Elapsed CPU time :'+String.valueOf(Limits.getCpuTime()-
startTime));
system.debug(Logginglevel.error, 'isInsert '+trigger.isInsert+'isUpdate
'+trigger.isUpdate+'isBefore'+trigger.isBefore+'isAfter
'+trigger.isAfter);
}
}
#FarmingtonHillsSFDCdug #SalesforceApexHours
Declarative Benchmark Illustration
Insert 200
records
After insert
trigger
Workflow
process field
updates
After update
trigger
Mark start
CPU time
here
Mark end
CPU time
hereTotal workflow
time
#FarmingtonHillsSFDCdug #SalesforceApexHours
Code vs Declarative Performance
Test Case CPU Time
Insert 200 leads – No code 1.1 ms per lead
Insert 200 leads – Apex code does logic in a
before update trigger
2.2 ms per lead (+1.1 ms)
Insert 200 leads – Workflow Rule updates fields
2.8 ms per lead (+1.7 ms)
Insert 200 leads – Process updates fields
8.2 ms per lead (+7.1 ms)
#FarmingtonHillsSFDCdug #SalesforceApexHours
Declarative Time
Killers
#FarmingtonHillsSFDCdug #SalesforceApexHours
Consequences
• The cost of sending email notifications via Workflows can add up 15 ms/email
(10 field merge template). Ultimately that is 3 seconds for 200 records !
• What is Alternative then?
Create task for user – only 0.5 ms per record (tested with basic formula
workflow)
• Validation Rules
Each validation formula function takes about 30 microseconds.
Example : 10 validation rules, each with 10 functions, applied to 200 records =
600 ms
#FarmingtonHillsSFDCdug #SalesforceApexHours
Death By Interaction
#FarmingtonHillsSFDCdug #SalesforceApexHours
In Trigger Context..
App A
2 seconds
App B
2 seconds
App C
2 seconds 6 Seconds
#FarmingtonHillsSFDCdug #SalesforceApexHours
In Trigger Context..
App A
2 seconds
App B
2 seconds
App C
2 seconds
Workflow
field update
2 seconds
App A
2 seconds
App B
2 seconds
CPU timeout here.. Random App gets
the blame(depending on trigger
order)
You are innocent doesn’t mean they
aren’t going to frame you
#FarmingtonHillsSFDCdug #SalesforceApexHours
Lets try out This
 Have after insert trigger on Lead – (mention in earlier slide)
 Add invocable method with below logic and call it from process builder
@InvocableMethod
public static void delay(List<Id> leadIds){
List<Integer> largeArray = new List<Integer>();
for(Integer x=0;x<10000;x++){
largeArray.add(x);
}
for(Id leadId :leadIds){
String jsonStr = JSON.serialize(largeArray);
}
}
#FarmingtonHillsSFDCdug #SalesforceApexHours
#FarmingtonHillsSFDCdug #SalesforceApexHours
Process Silently Fail – Trigger Cause Exception
& Rollback
Insert 400
Leads
After insert
trigger
(first 200)
Process
Call Apex
Process
Updates
Leads
After insert
trigger
(last 200)
Serialize
large arrays
CPU timeout happens
here..
Aborts this action silently
CPU timeout detected
here..
Apex error blames the
trigger
#FarmingtonHillsSFDCdug #SalesforceApexHours
How to prevent this?
• Use Limits.getCPUTime() to find out you are getting into trouble, then
either exit or go async if you are getting close
• Learn more advance architectures to detect reentrancy
• Try to use Platform event in your solution for Async operation
• Accept that you still may get the blame 
#FarmingtonHillsSFDCdug #SalesforceApexHours
Some Good news !!
• Figuring out how to optimize applications is fun seriously
• Figuring out what went wrong is also fun (unless you’re
getting blame )
• You have great job security (unless, of course you’re
getting blame )
#FarmingtonHillsSFDCdug #SalesforceApexHours
#FarmingtonHillsSFDCdug #SalesforceApexHours
Purushottam Bhaigade
purushottambhaigade@gmail.com
@bhaigadepuru
Credits :
Dan Appleman (@danappleman)
Robert Watson (@watsonrobertb)
#FarmingtonHillsSFDCdug #SalesforceApexHours
Follow us
#SalesforceApexHours @ApexHours
https://trailblazercommunitygroups.com/farmington-mi-
developers-group/
https://www.youtube.com/channel/UChTdRj6YfwqhR_WEF
epkcJw/videos
https://www.facebook.com/FarmingtonHillsSfdcdug/?ref=b
ookmarks

More Related Content

What's hot

Webinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce OptimizerWebinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce OptimizerSalesforce Admins
 
How to migrate to Apex Enterprise Patterns?, David Fernandez
How to migrate to Apex Enterprise Patterns?, David FernandezHow to migrate to Apex Enterprise Patterns?, David Fernandez
How to migrate to Apex Enterprise Patterns?, David FernandezCzechDreamin
 
Champion Productivity with Service Cloud
Champion Productivity with Service CloudChampion Productivity with Service Cloud
Champion Productivity with Service CloudSalesforce Admins
 
SAP Activate Methodology for S/4HANA Implementation
SAP Activate Methodology for S/4HANA ImplementationSAP Activate Methodology for S/4HANA Implementation
SAP Activate Methodology for S/4HANA ImplementationKellton Tech Solutions Ltd
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsSalesforce Developers
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practicespanayaofficial
 
Salesforce Integration Patterns
Salesforce Integration PatternsSalesforce Integration Patterns
Salesforce Integration Patternsusolutions
 
COPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceCOPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceThierry TROUIN ☁
 
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Salesforce Partners
 
Admin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & PermissionsAdmin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & PermissionsSalesforce Admins
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12MysoreMuleSoftMeetup
 
The Wright Move – A Continued Journey to the Oracle EPM Cloud
 The Wright Move – A Continued Journey to the Oracle EPM Cloud The Wright Move – A Continued Journey to the Oracle EPM Cloud
The Wright Move – A Continued Journey to the Oracle EPM CloudAlithya
 
Why Flow with Salesforce Flow
Why Flow with Salesforce FlowWhy Flow with Salesforce Flow
Why Flow with Salesforce FlowAjeet Singh
 
Salesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce Partners
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSujesh Ramachandran
 
Salesforce Field Service Lightning
Salesforce Field Service LightningSalesforce Field Service Lightning
Salesforce Field Service LightningJayant Jindal
 
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...Linh Nguyen
 

What's hot (20)

Sales Cloud Best Practices
Sales Cloud Best PracticesSales Cloud Best Practices
Sales Cloud Best Practices
 
Webinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce OptimizerWebinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce Optimizer
 
How to migrate to Apex Enterprise Patterns?, David Fernandez
How to migrate to Apex Enterprise Patterns?, David FernandezHow to migrate to Apex Enterprise Patterns?, David Fernandez
How to migrate to Apex Enterprise Patterns?, David Fernandez
 
Champion Productivity with Service Cloud
Champion Productivity with Service CloudChampion Productivity with Service Cloud
Champion Productivity with Service Cloud
 
SAP Activate Methodology for S/4HANA Implementation
SAP Activate Methodology for S/4HANA ImplementationSAP Activate Methodology for S/4HANA Implementation
SAP Activate Methodology for S/4HANA Implementation
 
Real Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform EventsReal Time Integration with Salesforce Platform Events
Real Time Integration with Salesforce Platform Events
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practices
 
Under the Hood of Sandbox Templates
Under the Hood of Sandbox TemplatesUnder the Hood of Sandbox Templates
Under the Hood of Sandbox Templates
 
Salesforce Integration Patterns
Salesforce Integration PatternsSalesforce Integration Patterns
Salesforce Integration Patterns
 
COPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour SalesforceCOPADO - Plateforme de DEVOPS pour Salesforce
COPADO - Plateforme de DEVOPS pour Salesforce
 
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
 
Admin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & PermissionsAdmin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & Permissions
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
 
The Wright Move – A Continued Journey to the Oracle EPM Cloud
 The Wright Move – A Continued Journey to the Oracle EPM Cloud The Wright Move – A Continued Journey to the Oracle EPM Cloud
The Wright Move – A Continued Journey to the Oracle EPM Cloud
 
Why Flow with Salesforce Flow
Why Flow with Salesforce FlowWhy Flow with Salesforce Flow
Why Flow with Salesforce Flow
 
Migrating To Lightning
Migrating To LightningMigrating To Lightning
Migrating To Lightning
 
Salesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce App Cloud First Call Deck
Salesforce App Cloud First Call Deck
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
 
Salesforce Field Service Lightning
Salesforce Field Service LightningSalesforce Field Service Lightning
Salesforce Field Service Lightning
 
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...
Solution Manager Technical Monitoring - SAP BOBJ BI 4.0 (Part 3 of 3 - Manage...
 

Similar to Apex code Benchmarking

JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveAndreas Grabner
 
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)Vivek Chawla
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!Andreas Grabner
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroSteven Pignataro
 
Episode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in SalesforceEpisode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in SalesforceJitendra Zaa
 
High ROI Testing in Angular.pptx
High ROI Testing in Angular.pptxHigh ROI Testing in Angular.pptx
High ROI Testing in Angular.pptxChristian Lüdemann
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance TestingLars Thorup
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowKaren Morton
 
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler Framworks
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler FramworksSalesforce Meetup 18 April 2015 - Apex Trigger & Scheduler Framworks
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler FramworksSumitkumar Shingavi
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino DogsMark Myers
 
PostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and AlertingPostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and AlertingGrant Fritchey
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesInductive Automation
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Pythongturnquist
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleSean Chittenden
 
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...DataScienceConferenc1
 
Asynchronous Apex Salesforce World Tour Paris 2015
Asynchronous Apex Salesforce World Tour Paris 2015Asynchronous Apex Salesforce World Tour Paris 2015
Asynchronous Apex Salesforce World Tour Paris 2015Samuel De Rycke
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesSauce Labs
 

Similar to Apex code Benchmarking (20)

JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
 
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
Build Great Triggers Quickly with STP (the Simple Trigger Pattern)
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
 
Stored procedures with cursor
Stored procedures with cursorStored procedures with cursor
Stored procedures with cursor
 
Episode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in SalesforceEpisode 20 - Trigger Frameworks in Salesforce
Episode 20 - Trigger Frameworks in Salesforce
 
High ROI Testing in Angular.pptx
High ROI Testing in Angular.pptxHigh ROI Testing in Angular.pptx
High ROI Testing in Angular.pptx
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Performance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, HowPerformance Instrumentation for PL/SQL: When, Why, How
Performance Instrumentation for PL/SQL: When, Why, How
 
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler Framworks
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler FramworksSalesforce Meetup 18 April 2015 - Apex Trigger & Scheduler Framworks
Salesforce Meetup 18 April 2015 - Apex Trigger & Scheduler Framworks
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino Dogs
 
PostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and AlertingPostgreSQL Performance Problems: Monitoring and Alerting
PostgreSQL Performance Problems: Monitoring and Alerting
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Design Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best PracticesDesign Like a Pro: Scripting Best Practices
Design Like a Pro: Scripting Best Practices
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Python
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...
[DSC Europe 22] Engineers guide for shepherding models in to production - Mar...
 
Asynchronous Apex Salesforce World Tour Paris 2015
Asynchronous Apex Salesforce World Tour Paris 2015Asynchronous Apex Salesforce World Tour Paris 2015
Asynchronous Apex Salesforce World Tour Paris 2015
 
BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 

More from Amit Chaudhary

Empower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineEmpower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineAmit Chaudhary
 
Marketing cloud development
Marketing cloud developmentMarketing cloud development
Marketing cloud developmentAmit Chaudhary
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceAmit Chaudhary
 
Modular application development using unlocked packages
Modular application development using unlocked packagesModular application development using unlocked packages
Modular application development using unlocked packagesAmit Chaudhary
 
Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Amit Chaudhary
 
Lightning web components
Lightning web componentsLightning web components
Lightning web componentsAmit Chaudhary
 
Lightning web components
Lightning web componentsLightning web components
Lightning web componentsAmit Chaudhary
 
Lightning Locker Services
Lightning Locker ServicesLightning Locker Services
Lightning Locker ServicesAmit Chaudhary
 
Salesforce apex hours heroku connect - deep dive
Salesforce apex hours   heroku connect - deep diveSalesforce apex hours   heroku connect - deep dive
Salesforce apex hours heroku connect - deep diveAmit Chaudhary
 
Salesforce apex hours :- azure active directory seamless single sign-on with...
Salesforce apex hours  :- azure active directory seamless single sign-on with...Salesforce apex hours  :- azure active directory seamless single sign-on with...
Salesforce apex hours :- azure active directory seamless single sign-on with...Amit Chaudhary
 
Salesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgSalesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgAmit Chaudhary
 
Einstein Analytics Part 2
Einstein Analytics Part 2Einstein Analytics Part 2
Einstein Analytics Part 2Amit Chaudhary
 
Demystifying the salesforce reports api
Demystifying the salesforce reports apiDemystifying the salesforce reports api
Demystifying the salesforce reports apiAmit Chaudhary
 
Salesforce apex hours Einstein platform services
Salesforce apex hours   Einstein platform servicesSalesforce apex hours   Einstein platform services
Salesforce apex hours Einstein platform servicesAmit Chaudhary
 
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVSalesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVAmit Chaudhary
 
Integrating with salesforce using platform events
Integrating with salesforce using platform eventsIntegrating with salesforce using platform events
Integrating with salesforce using platform eventsAmit Chaudhary
 

More from Amit Chaudhary (20)

Platform cache
Platform cachePlatform cache
Platform cache
 
Empower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipelineEmpower admins with the power of salesforce dx, git and cicd pipeline
Empower admins with the power of salesforce dx, git and cicd pipeline
 
Marketing cloud development
Marketing cloud developmentMarketing cloud development
Marketing cloud development
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforce
 
Modular application development using unlocked packages
Modular application development using unlocked packagesModular application development using unlocked packages
Modular application development using unlocked packages
 
Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)Einstein Next Best Action (NBA)
Einstein Next Best Action (NBA)
 
Pardot basics
Pardot basicsPardot basics
Pardot basics
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Lightning web components
Lightning web componentsLightning web components
Lightning web components
 
Lightning Locker Services
Lightning Locker ServicesLightning Locker Services
Lightning Locker Services
 
Salesforce apex hours heroku connect - deep dive
Salesforce apex hours   heroku connect - deep diveSalesforce apex hours   heroku connect - deep dive
Salesforce apex hours heroku connect - deep dive
 
Salesforce apex hours :- azure active directory seamless single sign-on with...
Salesforce apex hours  :- azure active directory seamless single sign-on with...Salesforce apex hours  :- azure active directory seamless single sign-on with...
Salesforce apex hours :- azure active directory seamless single sign-on with...
 
Salesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch OrgSalesforce DX for Non-Scratch Org
Salesforce DX for Non-Scratch Org
 
Einstein Analytics Part 2
Einstein Analytics Part 2Einstein Analytics Part 2
Einstein Analytics Part 2
 
Einstein Analytics
Einstein Analytics Einstein Analytics
Einstein Analytics
 
Demystifying the salesforce reports api
Demystifying the salesforce reports apiDemystifying the salesforce reports api
Demystifying the salesforce reports api
 
Salesforce apex hours Einstein platform services
Salesforce apex hours   Einstein platform servicesSalesforce apex hours   Einstein platform services
Salesforce apex hours Einstein platform services
 
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDVSalesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
Salesforce Apex Hours : How Lightning Platform Query Optimizer works for LDV
 
Einstein bots
Einstein botsEinstein bots
Einstein bots
 
Integrating with salesforce using platform events
Integrating with salesforce using platform eventsIntegrating with salesforce using platform events
Integrating with salesforce using platform events
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 

Apex code Benchmarking