dreamforce13

Dreamforce 13 Performance Tuning Sessions

Dreamforce 13 was the first Dreamforce that I attended.  It was an excellent conference in general and the reality more than lived up to the hype.  Going into it, I honestly didn’t know what to expect from a technical perspective.  I’ve had mixed results with conferences in the past.  The ones that disappointed me had the common theme of not having technically strong sessions, regardless of how good their product(s) were.  Let me tell you, I was not disappointed at all!  Dreamforce 13 had extremely well done, technically strong sessions given by the world’s leading experts in their subject areas.  The presenters did not shy away from getting into the lower level code, but at the same time they were able to present it in meaningful, understandable pieces.

My only regret is that it wasn’t possible for me to somehow attend all of the sessions at one time.  In years past when I wasn’t able to attend Dreamforce I spent a significant amount of time watching the recorded sessions on Youtube.  You can find the 2013 sessions on Youtube; however, the Developers @ Dreamforce 2013 Recap page is an excellent starting point for those of you wanting to get more than just the videos.  You can get more of a feel for what went on in the Developer Zone.  There are links to the Books, Workbooks, and Cheatsheets that were being handed out there. There are links to the Hackathon App Gallery, a Developer Zone photo gallery, and a listing of some developer zone sessions.  This listing is particularly useful.  Each session has its recording posted which is the Youtube video, but they also have slides and code if available.

Each year there are sessions related to performance tuning and best practices for some of the common Apex features typically used to handle more intensive processing such as batch jobs. I highly recommend that every developer be aware of the topics covered in these sessions.  Taking the couple of hours to watch these sessions and understand the concepts presented will save you from going down the wrong path in your design phase.  Here are three that I enjoyed and highly recommend.

Building Efficient Visualforce Pages
Presenters: Steve Bobrowski, Markus Spohn, Joseph Ferraro

This session discussed improving Visualforce memory efficiency with ways to build pages that result in smaller view states. It discussed database efficiency with query optimizations, query more, sharing, and more. It discussed different approaches to the same problem, such as long polling with the Force.com Streaming API vs. using actionPoller. Last, but certainly not least, Joseph Ferraro from MavensMate showed of the new Project Health Check functionality of MavensMate. It is a great asset for finding and fixing common problems proactively and a tool every developer should have in their tool belt.

Performance Tuning for Visualforce and Apex
Presenters: John C. Tran and Thomas Harris

This session discussed tuning the data model, SOQL queries, Apex, Visualforce, and it also discussed debugging and troubleshooting performance problems.  The data model tuning portion discussed how to address data model issues of record lock contention, data skew, and sharing calculations and how to build more efficient queries with selective filters.  The Apex tuning portions covered Batch Apex using selective queries in the start() method and avoiding inefficient String processing to avoid CPU limits.  The Visualforce tuning portion covered view state reduction methods with pagination, transient keyword, JavaScript Remoting, and simplifying the component model.  Debugging and troubleshooting covered measuring response time and setting debug log levels.  It also discussed contacting Salesforce support for more complex issues such as locking problems and requesting custom indexes.  There were lots of good audience questions.

Design Patterns for Asynchronous Apex
Presenter: Dan Appleman

Many times the solution to your performance issues may require you to write asynchronous code such as Batch Apex. This session presents design patterns for asynchronous Apex. There was a quick review of future calls, Batch Apex, and Scheduled Apex. The focus was on recent changes in Apex to support new solutions to common asynchronous challenges. A beautiful design pattern for Scheduled Apex was presented that gets around the problem of not being allowed to update Scheduled Apex classes that have jobs scheduled. This session is worth watching for that alone. It also discusses patterns for chaining batch jobs and creating more than 10 future calls in an execution context. I encourage you to buy the 2nd edition of Dan’s book Advanced Apex Programming, which contains the patterns presented in this session.

Early registration for Dreamforce 2014 is already available.  I strongly encourage you to try to get to Dreamforce 2014 if you have a technical role such as developer.

2 thoughts on “Dreamforce 13 Performance Tuning Sessions

Leave a Reply

Your email address will not be published. Required fields are marked *