16

When I am developing sometimes my eclipse hangs or takes 8 mins to push a change. IT really slows me down. It can take a long while to run tests.

I sometime run tests in the browser to speed things up.

What tips do you have to speed up development?

8 Answers 8

13

Alternative Options

In lieu of using Eclipse, a much better option (IMHO), would be to use maven's mate with Sublime Text. Sublime Text has way better text editing features, and with maven's mate you get all the features of Eclipse.

Eclipse Speed Discussion

A couple common reasons for a slow Eclipse Force.com plugin that you might take a look at.

1) You're working on a production system

In this case every save you make (with some exceptions) is performing a production deployment which means Salesforce runs all tests in the org. Instead of coding against production you'll want to use a sandbox to make your changes and then deploy to production once you've got things where you like it.

2) The Force.com plugin has a bad (IMHO) polling algorithm

The way a save in Eclipse (and all tools) is asynchronous. Meaning that one message is sent to Salesforce with the data, and then Eclipse polls back ever so often to see if Salesforce is done. The algorithm for this sucks and works by doubling the timeout. Meaning that after a couple polls the wait time before it checks again rapidly increases and you'll be waiting for a long time for something that is already done (see @surfous's answer for an example). You can see the number of polls in the progress section.
enter image description here

Personally, if the number of polls increase above 13, I cancel the save (by clicking the 'stop' icon) in the progress log and then re-save the resource after making a fake edit (i.e. add a character then delete it). The second save won't really be doing anything, but if you do get a failure it'll typically get it quicker the second time (as well as a success). To see the REAL time it takes to do your save login to the org and go to setup->deploy->monitor deployments and you can see if your stuff is in progress.

3) Eclipse does a lot of under the cover blocking network actions

When files open in Eclipse something happens that involves a network communication. I believe it's loading all the orgs objects and fields to initialize the auto-complete. Sometimes that operation can be super slow and your stuck waiting for a while until your editor loads.

4) You don't have enough memory

Eclipse is hardly shy about consuming resources. If you have a computer with a small amount of RAM Eclipse is just going to be slow, period. If it starts running low on memory it gets REALLY slow. You can monitor heap usage in Eclipse to see how much you're using (instructions). You can also change the max amount of memory eclipse is allowed to use (instructions).

5) Your deployment actually is really slow

In some cases Salesforce just takes forever to process things. For one client I ran into situations where EVERY save to a VisualForce page took several minutes to save. We logged a case with support and a bug was filed, but as far as I can tell people still run into really crappy performance now and again. In these cases you should contacts support and let them know about the issue.

9

If you are using a Mac, I highly recommend this free open source alternative: https://github.com/joeferraro/MavensMate-SublimeText

They are making a Windows version soon as well.

Longer term, I think the new Tooling API will help will speed and performance...

4
  • Have you been able to configure SublimeText to connect to Salesforce to edit classes and triggers? I am a huge fan of this editor but the way I use it to edit VF, Class and Trigger is copy the code from SublimeText and paste it into the SFDC browser and save. Curious to know if were able to connect the editor to SFDC like eclipse?
    – DCBoy
    Commented May 1, 2013 at 3:10
  • 2
    That is exactly what Joe Ferraro's MavensMate plugin does - it provides Eclipse-like functionality using Sublime Text - click on the link in my comment above for more info about it. Commented May 1, 2013 at 16:13
  • There are a handful of options these days: brainengine.net, c9.io apparently has a Salesforce connector, aside.io/login, and the developer console.
    – Phil Rymek
    Commented Feb 26, 2014 at 7:52
  • It's available for Windows now
    – EricSSH
    Commented Jul 9, 2014 at 23:02
3

Here are a couple tips, though it doesn't solve the overall problem.

One thing I've noticed in Eclipse (I'm on the mac - other Force.com IDE/Eclipse platforms may vary) is that a test run - even a single test run - can be terribly slow. If Eclipse has been running for "a while," I'll quit and restart it. Test runs return results much more quickly then.

Additionally, a deployment may be finished long before the results are returned/displayed by Eclipse. There have been times where I've had an active deployment going in eclipse, but I could check the class(es)/triggers/pages in the browser and see that my changes had already been successfully deployed. Since the deployment is all-or-nothing, I can safely assume that if I see any of my changes from the deployment, all of the changes have successfully been deployed.

1

Upgrade to Force.com IDE beta which uses the 'Tooling API' when possible, Eclipse install site is: http://media.developerforce.com/force-ide/beta

force.com with tooling api

1

For me the best IDE for salesforce is https://www.aside.io/login

I loved this IDE. so fast and easy to use. no need to add all the workspace etc. Just login and start your work (y)

0

You can have a look at CodeFusion: http://www.elastify.eu/apps/CodeFusion It follows a different approach and comes as a free and 100% native app installed into an org as a managed package. Supporting both, ToolingAPI and MetadataAPI switchable, you can compare the performance. Typically ToolingAPI is much faster.

0

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

0

I would suggest using Sublime Text + Mavensmate and playing with the Tooling API enable/disable setting :).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .