4

Let's say I am working on a VisualForce page in Eclipse. I make changes and press save, so that I can see the changes. Eclipse then saves the file to the cloud. This seems to take anywhere from 3-6 seconds. Seems like too long.

I thought it might just be Eclipse, so I tried the Developer Console and it's pretty much the same there.

Questions:

  1. Is this normal?
  2. Any way to make it faster? Perhaps mess with DNS?
  • 2
    Yep, get used to it if you want to benefit from the joys of multi-tenant architecture. – Adrian Larson Jul 26 '13 at 17:58
  • For what it's worth, working directly on the Visualforce page in Development Mode seems a little faster to me. – metadaddy Jul 26 '13 at 18:51
  • The system compiles your code. Each save. Save less, you'll get faster. As a side note, your application is available within a second of saving instead of having a potentially long wait time for compilation and execution. Even if the actual save is "slower", your entire run-debug-fix cycle is faster than any desktop IDE I've seen for any moderately sized project. – sfdcfox Jul 26 '13 at 19:00
  • IMO, the advantages of working in developer mode on VisualForce pages far outweigh any benefits I can think of for working in Eclipse, particularly since you can always sync your Eclipse project with SF to add the new pages you've created in SF. You can also easily copy/paste back and forth. – crmprogdev Jul 27 '13 at 13:59
  • @sfdcfox I am not denying the benefits of cloud compilation...just a little bit disconcerting to have a 5 second wait every time you save. – AngryHacker Jul 28 '13 at 19:35
5

The short answers are:

  1. Yes
  2. Not really

You have to keep in mind that every time you save your work to Salesforce it has to validate (and, as pointed out by @sfdcfox in the comments, compiled) your code and check it for errors. All while running in a multi-tenant environment that you don't have to maintain or patch.

  • 3
    It's not just a validation. It's actually compiling your code into bytecode that will ultimately be executed by the server. Just think about that. Your compilation time is included in the 3-6 seconds. And, since the code is compiled per-class (as in Java), only modified classes have to be recompiled; dependent classes may need to be recompiled if you change a function or member that another class depends on, but that's done later, when you feel like it. – sfdcfox Jul 26 '13 at 18:36
  • Good point on the compilation. – Mike Chale Jul 26 '13 at 18:38
4

Unfortunately slow development is the reality of the cloud paradigm of SF, and it will remain so at least until there will be ability to spin up local SF servers.

But there is good news - at least for front-end - there is a process that can immensely speed up development.

It involves intercepting your CSS, JS, and to some extent generated HTML markup through an intermediate proxy to serve local files and hence avoiding the save to server cycle. We have been using this successfully in a company of 50+ employees as it also greatly helps with collisions on large project with many developers.

Overview:

  1. Download Charles (for MAC) or Fiddler (for Windows)
  2. Map your requests to /resource/* to your local resource-bundles if using the Maven's Mate staticresoruces convention
  3. Edit files locally, and preview directly in browser.
    • TIP: for even faster dev you can edit and save directly from Chrome Developer Tools
  4. When development is complete, commit to hg (merge as necessary), and push finished solution to the org.

Please see a full blog post I made of this here: http://danielsokolowski.blogspot.ca/2015/11/speed-up-saleforce-development.html

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.