SlideShare a Scribd company logo
1 of 46
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Developer insight
into why applications
run amazingly Fast in
CF 2018
SV Pavan Kumar | Engineer | sanniset@adobe.com
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Adobe ColdFusion & API Manager ProductTeam
Security Czar for ColdFusionTeam
Experienced Java Developer
Former Developer at RSA Security
About Me
Email: sanniset@adobe.com
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Just by migrating CF to 2018
ColdFusion 2016 ColdFusion 11
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
4
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance
5
ColdFusion Performance
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance
6
ColdFusion Performance
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
ColdFusion Performance
CF Engine
Language
Core
Runtime
Functions Tags
Performance
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
In a split second
Finding an element in the list (listContainsLasvegas)
Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore
8
Creates an array of Strings
Tokyo BangkokLasvegas NewYork Jakarta Bangalore
Linearly check each String for equality
CF 2016
List Item# 1
Lasvegas
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9
Result
True
Lasvegas
Finding an element in the list (listContainsLasvegas)
Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore
Creates an array of Strings
Tokyo BangkokLasvegas NewYork Jakarta Bangalore
Linearly check each String for equality
CF 2016
List Item# 2
In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Finding an element in the list (listContainsLasvegas)
Tokyo, Lasvegas, Bangkok,NewYork, Jakarta, Bangalore
Lasvegas
10
CF 2018
Character by Character ScanList Item# 1
Move the pointer till delimiter is found
In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Finding an element in the list (listContainsLasvegas)
Tokyo, Lasvegas, Bangkok,NewYork, Jakarta, Bangalore
Lasvegas
11
CF 2018
Character by Character ScanList Item# 2
Result
true
 Intermediate Array of Strings generation is avoided
In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Finding an element in the list (listInsertAt 3London)
Tokyo, Lavagas, Bangkok, NewYork, Jakarta, Bangalore
12
Creates an array of Strings
Tokyo BangkokLasVegas NewYork Jakarta Bangalore
Insert London at the position 3
Tokyo BangkokLasVegas NewYork Jakarta BangaloreLondon
Concatenate Array Of Strings to List
Tokyo, Lasvegas, London, Bangkok, NewYork, Jakarta,
Bangalore
CF 2016In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
• Finding an element in the list (listInsertAt 3London)
Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore
13
CF 2018
Char by Char scan and Find (Position – 1 ) Delimiter
Tokyo, Lasvegas,
Prefix
London
ValueTo Insert Delimiter
Bangkok, NewYork, Jakarta, Bangalore
Suffix
,
Concat(prefix, value to insert, delimiter, suffix)
Tokyo,Lasvegas,London,Bangkok,NewYork, Jakarta,
Bangalore
In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
14
CF 2018
 Intermediate Array of Strings generation is avoided
 Reduced the number of concatenations
In a split second
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
15
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
The wizard of RegEx
16
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Matchmaking
17
CF 2016
<([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1>
<TAG>one<TAG>two</TAG>one</TAG>
CF RegEx Engine
Compile Regular
Expression
Match the Input
with RegEx
Return
True/False
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
18
CF 2016
<([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1>
<TAG>one<TAG>two</TAG>one</TAG>
CF RegEx Engine
Compile Regular
Expression
Match the Input
with RegEx
Return
True/False
Matchmaking
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
19
CF 2018
<([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1>
<TAG>one<TAG>two</TAG>one</TAG>
CF RegEx Engine
Get Compiled
RegEx
Lookup RegEx
Cache
Matchmaking
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
20
CF 2018
<([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1>
<TAG>one<TAG>two</TAG>one</TAG>
CF RegEx Engine
Get Compiled
RegEx
Match the Input
with RegEx
Return
True/False
Lookup RegEx
Cache
Compile RegEx
Matchmaking
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Rusty: XML’sTale
21
XmlParse(xmlText [, caseSensitive ], validator])
XML DOMTree
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Rusty: XML’sTale
22
XmlParse(xmlText [, caseSensitive ], validator])
Scan the
classpath for the
parser available
Set up Parser
with all the
handlers and
config
CF 2016
Parse String XML
to tree
XML Parser creation
 Parser setup and creation is done every time
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Rusty: XML’sTale
23
CF 2018
XmlParse(xmlText [, caseSensitive ], validator])
Parse String XML
to tree
Get a Parser
from Pool
Scan the
classpath for the
parser available
Set up Parser
with all the
handlers and
config
Parse String XML
to tree
XML Parser creation
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Rusty: XML’sTale
24
XmlParse(xmlText [, caseSensitive ], validator])
• Reusing the Parser
• Ensuring the thread Safety
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
25
Rusty: XML’sTale
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Array Functions
26
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Save the Content
27
 /wwwroot/WEB-INF/cftags/savecontent.cfc
 CFModule
 Built-inTag 2018
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Log
28
 Remove additivity for the loggers not having any parent loggers
 Optimized file I/O when writing log message to file
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Insert
29
 When retrieving metadata for a SQL table requesting only required fields.
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Filling in the stack trace is slow
• Exception creation is very slow
• The deep the thread stack the more time is spent in filling stacktrace
• Should be used for unexpected problems.
30
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Throw and Rethrow
31
try {
throw(message="Oops", detail="xyz");
} catch (any e) {
writeOutput("Error: " & e.message);
} finally {
writeOutput("I run even if no error");
}
 compiler optimization
 Optimized bytecode instruction
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance
32
CF
Engine
Language
Core
Runtime
Tags
ColdFusion Performance
Functions
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Finding Application
33
Setting in CF Admin to specify the order of search
Caching the search for Application.cfc/cfm for a requested template
Caching happens only when trusted cache is enabled
Improved the way of calling of event listeners such as
onRequestStart, OnRequestEnd etc.
Check for Application.cfc/cfm
in parent directory
Found Application.cfc?
Check for Application.cfc/cfm
in current directory
Start
Return
Path
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Path Caching
34
ColdFusion 2016 & earlier
ColdFusion 2018
Searching for path happens when
ExpandPath
CFInclude
CFModule
Invoking a CFC/CFM
Earlier depends on tomcat container for caching
Extended for multiple websites
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
I/O optimization
• Invoking CFC when implementing interface
• Validity of the interface implementation checked every time
• Now caching successful validation results
• Making use of trusted cache setting
• CF Mappings/ CustomTag Paths
• Searching for a file in Mappings & custom tag paths has been optimized
• Less file disk I/O
35
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Setup
36
OS &
Hardware Network JVM CFTuning
Windows 2012 R2
2 Sockets/4 cores@socket
RAM 32 GB
DB: MS SQL 2012
MySQL 5.7
No OfTCP Ports
Increase open files (ulimit)
Heap Size 2 GB
Parallel GC
Metaspace Size 1GB
Production Profile
Trusted Cache
Component Cache
Web server Path Cache
No. of concurrent requests
Tuning CF Connector
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Application Performance improvement from CF 2016
37
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Frameworks Performance improvement from CF 2016
38
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Performance
39
ColdFusion Performance
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Dang!!!
40
Tomcat shift towards NIO and making all the connectors
NIO improved its throughput and scalability.
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
41
Performance
ColdFusion Performance
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
JVM
42
 G1 (Garbage First) Garbage collection algorithm
 Ultra Low- pause time
 Concurrent Mark, Sweep and Compact
 It uses non-continuous spaces
 String Deduplication
 Around 10% Heap Reduction
G1 Memory Layout
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Best Practices
• Reuse Expensive Objects (ensuring thread safety)
• Cache
• Reduced file I/O
• Reduced network I/O
• Less use of exceptions
• Using Better Algorithms
• Request only what needed
43
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
44
Performance White Paper
https://wwwimages2.adobe.com/content/dam/acom/en/products/coldfusion
/pdfs/CF2018_Performance.pdf
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Appendix
• https://dzone.com/articles/choosing-the-right-gc
• https://blog.idrsolutions.com/2017/05/g1gc-java-9-garbage-collector-
explained-5-minutes/
• https://coldfusion.adobe.com/2018/07/distributed-caching-coldfusion-2018-
release/
• https://helpx.adobe.com/coldfusion/performance-monitoring-
toolset/overview-coldfusion-performance-monitoring-toolset.html
45
© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Q & A
sanniset@adobe.com

More Related Content

What's hot

Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018
Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018
Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018AWS Germany
 
Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Sid Anand
 
Testing on AWS - AWS IL meetup
Testing on AWS - AWS IL meetupTesting on AWS - AWS IL meetup
Testing on AWS - AWS IL meetupBoaz Ziniman
 
Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Sid Anand
 
Low Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionLow Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionSid Anand
 
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018Amazon Web Services
 
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018Amazon Web Services
 
Streaming with Structure | Kate Stanley and Salma Saeed, IBM
Streaming with Structure | Kate Stanley and Salma Saeed, IBMStreaming with Structure | Kate Stanley and Salma Saeed, IBM
Streaming with Structure | Kate Stanley and Salma Saeed, IBMHostedbyConfluent
 
SETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventuresSETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventuresNadzeya Pus
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSAmazon Web Services
 
Building low latency apps with a serverless architecture and in-memory data I...
Building low latency apps with a serverless architecture and in-memory data I...Building low latency apps with a serverless architecture and in-memory data I...
Building low latency apps with a serverless architecture and in-memory data I...AWS Germany
 
Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Sid Anand
 
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...HostedbyConfluent
 
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018Amazon Web Services
 
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the Benefits
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the BenefitsUpgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the Benefits
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the BenefitsSSP Innovations
 
A Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSA Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSBhuvaneswari Subramani
 
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Amazon Web Services
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateAmazon Web Services
 

What's hot (20)

Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018
Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018
Amazon Elastic Container Service for Kubernetes (Amazon EKS) I AWS Dev Day 2018
 
Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)
 
Testing on AWS - AWS IL meetup
Testing on AWS - AWS IL meetupTesting on AWS - AWS IL meetup
Testing on AWS - AWS IL meetup
 
Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)
 
Low Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionLow Latency Fraud Detection & Prevention
Low Latency Fraud Detection & Prevention
 
Introducing AWS Fargate
Introducing AWS FargateIntroducing AWS Fargate
Introducing AWS Fargate
 
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018
Migrating Your Data Warehouse to Amazon Redshift (DAT337) - AWS re:Invent 2018
 
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018
Oracle Enterprise Solutions on AWS (GPSCT203) - AWS re:Invent 2018
 
Streaming with Structure | Kate Stanley and Salma Saeed, IBM
Streaming with Structure | Kate Stanley and Salma Saeed, IBMStreaming with Structure | Kate Stanley and Salma Saeed, IBM
Streaming with Structure | Kate Stanley and Salma Saeed, IBM
 
SETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventuresSETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventures
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWS
 
Building low latency apps with a serverless architecture and in-memory data I...
Building low latency apps with a serverless architecture and in-memory data I...Building low latency apps with a serverless architecture and in-memory data I...
Building low latency apps with a serverless architecture and in-memory data I...
 
Anypoint Data Graphs
Anypoint Data GraphsAnypoint Data Graphs
Anypoint Data Graphs
 
Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)
 
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
 
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
Developing with .NET Core on AWS: What's New (DEV318-R1) - AWS re:Invent 2018
 
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the Benefits
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the BenefitsUpgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the Benefits
Upgrading to Esri ArcGIS 10: Avoid the Pitfalls, Reap the Benefits
 
A Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWSA Pathway to Continuous Integration/Continuous Delivery on AWS
A Pathway to Continuous Integration/Continuous Delivery on AWS
 
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
Building Serverless Analytics Solutions with Amazon QuickSight (ANT391) - AWS...
 
SRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS FargateSRV314 Containerized App Development with AWS Fargate
SRV314 Containerized App Development with AWS Fargate
 

Similar to Developer insight into why applications run amazingly Fast in CF 2018

Building Serverless ETL Pipelines
Building Serverless ETL PipelinesBuilding Serverless ETL Pipelines
Building Serverless ETL PipelinesAmazon Web Services
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Amazon Web Services
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Amazon Web Services
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Amazon Web Services
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Amazon Web Services
 
Run Production Workloads on Spot, Save up to 90%
Run Production Workloads on Spot, Save up to 90%Run Production Workloads on Spot, Save up to 90%
Run Production Workloads on Spot, Save up to 90%Amazon Web Services
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...Amazon Web Services
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSExciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSAmazon Web Services
 
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...Amazon Web Services
 
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...Amazon Web Services
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateAmazon Web Services
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSUri Savelchev
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfAmazon Web Services
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using ContainersAmazon Web Services
 
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...Amazon Web Services
 
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Amazon Web Services
 
Ci/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubCi/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubBoaz Ziniman
 

Similar to Developer insight into why applications run amazingly Fast in CF 2018 (20)

Building Serverless ETL Pipelines
Building Serverless ETL PipelinesBuilding Serverless ETL Pipelines
Building Serverless ETL Pipelines
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
Containerize Legacy .NET Framework Web Apps for Cloud Migration (WIN305) - AW...
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
Containerize Legacy .NET Framework Web Apps for Cloud Migration - ENT201 - Ch...
 
Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration Containerize Legacy .NET Framework Web Apps for Cloud Migration
Containerize Legacy .NET Framework Web Apps for Cloud Migration
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
Run Production Workloads on Spot, Save up to 90%
Run Production Workloads on Spot, Save up to 90%Run Production Workloads on Spot, Save up to 90%
Run Production Workloads on Spot, Save up to 90%
 
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
AWS Greengrass, Containers, and Your Dev Process for Edge Apps (GPSWS404) - A...
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKSExciting world of Amazon container services with AWS Fargate and Amazon EKS
Exciting world of Amazon container services with AWS Fargate and Amazon EKS
 
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...
Building Serverless Analytics Pipelines with AWS Glue (ANT308) - AWS re:Inven...
 
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...
CI/CD for Your Machine Learning Pipeline with Amazon SageMaker (DVC303) - AWS...
 
CI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and FargateCI/CD with AWS Developer Tools and Fargate
CI/CD with AWS Developer Tools and Fargate
 
How Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWSHow Zalando integrates Kubernetes with AWS
How Zalando integrates Kubernetes with AWS
 
Breaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdfBreaking the Monolith road to containers.pdf
Breaking the Monolith road to containers.pdf
 
Building Secure Services using Containers
Building Secure Services using ContainersBuilding Secure Services using Containers
Building Secure Services using Containers
 
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
 
はじめよう DynamoDB ハンズオン
はじめよう DynamoDB ハンズオンはじめよう DynamoDB ハンズオン
はじめよう DynamoDB ハンズオン
 
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
Driving Innovation with Serverless Applications (GPSBUS212) - AWS re:Invent 2018
 
Ci/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO ClubCi/CD for AWS Lambda Projects - JLM CTO Club
Ci/CD for AWS Lambda Projects - JLM CTO Club
 

Recently uploaded

WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 

Recently uploaded (20)

WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration ToolingWSO2Con2024 - Low-Code Integration Tooling
WSO2Con2024 - Low-Code Integration Tooling
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 

Developer insight into why applications run amazingly Fast in CF 2018

  • 1. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.© 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Developer insight into why applications run amazingly Fast in CF 2018 SV Pavan Kumar | Engineer | sanniset@adobe.com
  • 2. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Adobe ColdFusion & API Manager ProductTeam Security Czar for ColdFusionTeam Experienced Java Developer Former Developer at RSA Security About Me Email: sanniset@adobe.com
  • 3. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Just by migrating CF to 2018 ColdFusion 2016 ColdFusion 11
  • 4. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
  • 5. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance 5 ColdFusion Performance
  • 6. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance 6 ColdFusion Performance
  • 7. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7 ColdFusion Performance CF Engine Language Core Runtime Functions Tags Performance
  • 8. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. In a split second Finding an element in the list (listContainsLasvegas) Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore 8 Creates an array of Strings Tokyo BangkokLasvegas NewYork Jakarta Bangalore Linearly check each String for equality CF 2016 List Item# 1 Lasvegas
  • 9. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 9 Result True Lasvegas Finding an element in the list (listContainsLasvegas) Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore Creates an array of Strings Tokyo BangkokLasvegas NewYork Jakarta Bangalore Linearly check each String for equality CF 2016 List Item# 2 In a split second
  • 10. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. • Finding an element in the list (listContainsLasvegas) Tokyo, Lasvegas, Bangkok,NewYork, Jakarta, Bangalore Lasvegas 10 CF 2018 Character by Character ScanList Item# 1 Move the pointer till delimiter is found In a split second
  • 11. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. • Finding an element in the list (listContainsLasvegas) Tokyo, Lasvegas, Bangkok,NewYork, Jakarta, Bangalore Lasvegas 11 CF 2018 Character by Character ScanList Item# 2 Result true  Intermediate Array of Strings generation is avoided In a split second
  • 12. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. • Finding an element in the list (listInsertAt 3London) Tokyo, Lavagas, Bangkok, NewYork, Jakarta, Bangalore 12 Creates an array of Strings Tokyo BangkokLasVegas NewYork Jakarta Bangalore Insert London at the position 3 Tokyo BangkokLasVegas NewYork Jakarta BangaloreLondon Concatenate Array Of Strings to List Tokyo, Lasvegas, London, Bangkok, NewYork, Jakarta, Bangalore CF 2016In a split second
  • 13. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. • Finding an element in the list (listInsertAt 3London) Tokyo, Lasvegas, Bangkok, NewYork, Jakarta, Bangalore 13 CF 2018 Char by Char scan and Find (Position – 1 ) Delimiter Tokyo, Lasvegas, Prefix London ValueTo Insert Delimiter Bangkok, NewYork, Jakarta, Bangalore Suffix , Concat(prefix, value to insert, delimiter, suffix) Tokyo,Lasvegas,London,Bangkok,NewYork, Jakarta, Bangalore In a split second
  • 14. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 14 CF 2018  Intermediate Array of Strings generation is avoided  Reduced the number of concatenations In a split second
  • 15. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15
  • 16. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. The wizard of RegEx 16
  • 17. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Matchmaking 17 CF 2016 <([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1> <TAG>one<TAG>two</TAG>one</TAG> CF RegEx Engine Compile Regular Expression Match the Input with RegEx Return True/False
  • 18. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18 CF 2016 <([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1> <TAG>one<TAG>two</TAG>one</TAG> CF RegEx Engine Compile Regular Expression Match the Input with RegEx Return True/False Matchmaking
  • 19. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 19 CF 2018 <([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1> <TAG>one<TAG>two</TAG>one</TAG> CF RegEx Engine Get Compiled RegEx Lookup RegEx Cache Matchmaking
  • 20. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 20 CF 2018 <([A-Z][A-Z0-9]*)b[^>]*>(.*?)</1> <TAG>one<TAG>two</TAG>one</TAG> CF RegEx Engine Get Compiled RegEx Match the Input with RegEx Return True/False Lookup RegEx Cache Compile RegEx Matchmaking
  • 21. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Rusty: XML’sTale 21 XmlParse(xmlText [, caseSensitive ], validator]) XML DOMTree
  • 22. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Rusty: XML’sTale 22 XmlParse(xmlText [, caseSensitive ], validator]) Scan the classpath for the parser available Set up Parser with all the handlers and config CF 2016 Parse String XML to tree XML Parser creation  Parser setup and creation is done every time
  • 23. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Rusty: XML’sTale 23 CF 2018 XmlParse(xmlText [, caseSensitive ], validator]) Parse String XML to tree Get a Parser from Pool Scan the classpath for the parser available Set up Parser with all the handlers and config Parse String XML to tree XML Parser creation
  • 24. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Rusty: XML’sTale 24 XmlParse(xmlText [, caseSensitive ], validator]) • Reusing the Parser • Ensuring the thread Safety
  • 25. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 25 Rusty: XML’sTale
  • 26. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Array Functions 26
  • 27. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Save the Content 27  /wwwroot/WEB-INF/cftags/savecontent.cfc  CFModule  Built-inTag 2018
  • 28. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Log 28  Remove additivity for the loggers not having any parent loggers  Optimized file I/O when writing log message to file
  • 29. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Insert 29  When retrieving metadata for a SQL table requesting only required fields.
  • 30. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Filling in the stack trace is slow • Exception creation is very slow • The deep the thread stack the more time is spent in filling stacktrace • Should be used for unexpected problems. 30
  • 31. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Throw and Rethrow 31 try { throw(message="Oops", detail="xyz"); } catch (any e) { writeOutput("Error: " & e.message); } finally { writeOutput("I run even if no error"); }  compiler optimization  Optimized bytecode instruction
  • 32. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance 32 CF Engine Language Core Runtime Tags ColdFusion Performance Functions
  • 33. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Finding Application 33 Setting in CF Admin to specify the order of search Caching the search for Application.cfc/cfm for a requested template Caching happens only when trusted cache is enabled Improved the way of calling of event listeners such as onRequestStart, OnRequestEnd etc. Check for Application.cfc/cfm in parent directory Found Application.cfc? Check for Application.cfc/cfm in current directory Start Return Path
  • 34. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Path Caching 34 ColdFusion 2016 & earlier ColdFusion 2018 Searching for path happens when ExpandPath CFInclude CFModule Invoking a CFC/CFM Earlier depends on tomcat container for caching Extended for multiple websites
  • 35. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. I/O optimization • Invoking CFC when implementing interface • Validity of the interface implementation checked every time • Now caching successful validation results • Making use of trusted cache setting • CF Mappings/ CustomTag Paths • Searching for a file in Mappings & custom tag paths has been optimized • Less file disk I/O 35
  • 36. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Setup 36 OS & Hardware Network JVM CFTuning Windows 2012 R2 2 Sockets/4 cores@socket RAM 32 GB DB: MS SQL 2012 MySQL 5.7 No OfTCP Ports Increase open files (ulimit) Heap Size 2 GB Parallel GC Metaspace Size 1GB Production Profile Trusted Cache Component Cache Web server Path Cache No. of concurrent requests Tuning CF Connector
  • 37. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Application Performance improvement from CF 2016 37
  • 38. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Frameworks Performance improvement from CF 2016 38
  • 39. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Performance 39 ColdFusion Performance
  • 40. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Dang!!! 40 Tomcat shift towards NIO and making all the connectors NIO improved its throughput and scalability.
  • 41. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 41 Performance ColdFusion Performance
  • 42. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. JVM 42  G1 (Garbage First) Garbage collection algorithm  Ultra Low- pause time  Concurrent Mark, Sweep and Compact  It uses non-continuous spaces  String Deduplication  Around 10% Heap Reduction G1 Memory Layout
  • 43. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Best Practices • Reuse Expensive Objects (ensuring thread safety) • Cache • Reduced file I/O • Reduced network I/O • Less use of exceptions • Using Better Algorithms • Request only what needed 43
  • 44. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 44 Performance White Paper https://wwwimages2.adobe.com/content/dam/acom/en/products/coldfusion /pdfs/CF2018_Performance.pdf
  • 45. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Appendix • https://dzone.com/articles/choosing-the-right-gc • https://blog.idrsolutions.com/2017/05/g1gc-java-9-garbage-collector- explained-5-minutes/ • https://coldfusion.adobe.com/2018/07/distributed-caching-coldfusion-2018- release/ • https://helpx.adobe.com/coldfusion/performance-monitoring- toolset/overview-coldfusion-performance-monitoring-toolset.html 45
  • 46. © 2018 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Q & A sanniset@adobe.com