ColdFusion Muse

Performance Tip - CF Builder 2 Plugin on Windows 7 64 bit

Mark Kruger January 27, 2012 11:20 AM Coldfusion Tips and Techniques Comments (13)

The Muse is a slow moving tools user. I just switched to CF Builder about a year ago in fact. Before that I was using CF Eclipse. I still use the venerable Homesite for quick troubleshooting on production servers or to review code. I'm using it to write this blog in fact. I have written my blogs in hand coded HTML for many years - which I'm sure, explains the copious amounts of in-line CSS throughout. But I'm a full convert to CF Builder now and have been for some time. All my "Code-for-production" work is done using CFB with integrated SVN through a local environment. Recently on one of the email lists I follow I heard a tip from mad-genius Kevin Miller (Websolete.com).

Like the Muse, Kevin runs CF Builder 2 on Windows 7 64bit as a plugin against a heavily customized version of eclipse 64bit. Also like the Muse he finds it to be an underachiever. CFB (or perhaps it's just 64bit Eclipse and we are throwing CFB in there unnecessarily) tends to use way more processor than seems necessary and at times seem to lag and catch up like a fat man at a marathon. On rare occasions when I'm editing large files or (in particular) browsing files on the network it simply peters out and needs to be defibrillated - also like the fat man I suppose. Of course I have edited the eclipse.ini file and I run a large heap. I've experimented with different GC's and other params. In the end I just kind of assumed that.... well that it was a dog like many Java desktop apps (don't judge me). And at age 46 I've learned to settle for a lot of things, so I was reasonably content to simply live with it. I know - it sounds horrible when I write it down like that (doh!).

But Kevin suggested switching from javaw.exe to the jvm.dll by adding the "-vm" switch. I had assumed that "javaw.exe" was necessary because it builds a Windows GUI. But that "GUI" is not the Eclipse gui (at least I don't think so). More likely it is that annoying system tray thingy that keeps begging me to let it spout all the wonderful things Oracle is doing while it upgrades my SDK. Anyway, with a little trial and error I found that Eclipse runs splendidly using the jvm.dll and I'm having fewer lags and problems with. Kevin's post is here if you want the full story. Let me add to his comments that I had a bit of trouble finding the right "jvm.dll". The first one I tried was apparently 32 bit. The one I needed was in the jre6 folder - which eventually I found installed elswhere on my machine. Thinking back I think the SDK install does ask for a specific location for those files - so that makes sense.

Once I had right path I opened my eclipse short cut and added..

eclipse.exe -vm "C:\Program Files\Java\jre6\bin\server\jvm.dll"

...to the target area so that I'm using it each time I open eclipse. Note the necessary quotes around the path. They are needed because of the space in "program files". As always I count on my readers to add to the conversation - just be nice. Remember I grew up on Andy Griffith, not South Park. So let's leave Kenny alone on this post. On the other hand Aunt Bee is fair game.

  • Share:

13 Comments

  • Dan Vega's Gravatar
    Posted By
    Dan Vega | 1/27/12 1:14 PM
    It is so bad at work across our network that I won't even use it here. I switched to another editor all together at work. I just tried this using

    CFBuilder.exe -vm "C:\Program Files\Java\jre6\bin\server\jvm.dll"

    and got the following error, any ideas?

    Failed to load JNI shared library "C:\Program Files\Java\jre6\bin\server\jvm.dll"
  • Mark Kruger's Gravatar
    Posted By
    Mark Kruger | 1/27/12 2:29 PM
    Dan,

    I got that error too - but for me it was the wrong bitness (the jvm.dll I had was 32 bit). Make doubly sure you are pointed to the 64 bit jvm.dll. I had to search my PC for the /jre6 folder.

    -mark
  • Jose Galdamez's Gravatar
    Posted By
    Jose Galdamez | 1/27/12 2:59 PM
    I've always set up CF Builder using the standalone installation. I wonder if I'm out of luck with a tip like this. Looks like I'll need to check out the original blog post. Thanks for the tip!
  • Chris Tierney's Gravatar
    Posted By
    Chris Tierney | 1/27/12 3:14 PM
    So far this hack seems to have sped up Team Synchronizing by an amazing amount. My three projects usually took about 15-20 minutes to sync. Now it takes about one minute or less.

    I am running ColdFusion Builder 2 Standalone. I had to look for a 32-bit equivalent and came up with the JRE6 Client DLL. Here's how I run it on Windows 7 64-bit:

    "C:\Program Files (x86)\Adobe\Adobe ColdFusion Builder 2\CFBuilder.exe" -vm "C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll"

    Disclaimer: I haven't put much time into testing everything else yet, so hopefully nothing is broke. But so far so good.
  • Chris Tierney's Gravatar
    Posted By
    Chris Tierney | 1/27/12 3:17 PM
    So I just remembered that I just upgraded to a solid -state hard drive. I tested without the switch and it went just as fast. So disregard my bench-marking comment about SVN. Apparently SSHD's give a huge advantage to SVN Sync.
  • Mark Kruger's Gravatar
    Posted By
    Mark Kruger | 1/27/12 3:25 PM
    @Jose,

    Chris just posted the correct syntax to switch if you are using standalone.
  • Mark Kruger's Gravatar
    Posted By
    Mark Kruger | 1/27/12 3:30 PM
    @Chris,

    Rats - you have me so excited! :)
  • Mark Kruger's Gravatar
    Posted By
    Mark Kruger | 1/28/12 1:53 PM
    @Chris,

    In spite of the fact that I do not have a fancy pants solid state drive I have to say that SVN updates and commits are running amazingly fast. you should see it.

    -Mark
  • Khaled's Gravatar
    Posted By
    Khaled | 2/17/12 1:50 AM
    Errr. I tried starting CFB using the pointer that Chris posted. But it still freezes. For some reason this only started happening today. I have had builder for a few weeks with no problem.
  • Scott Stroz's Gravatar
    Posted By
    Scott Stroz | 5/3/12 9:42 AM
    Thanks Mark, this made a huge difference for me.

    You can also add the following to eclispe.ini to accomplish the same thing:

    -vm
    C:/Path/to/jre
  • Scott Stroz's Gravatar
    Posted By
    Scott Stroz | 5/3/12 9:45 AM
    Doh....did not copy the fill path.

    That should read:

    -vm
    -vm
    C:/path/to/jre/bin/server/jvm.dll
  • Keith Ralston's Gravatar
    Posted By
    Keith Ralston | 5/17/12 10:49 AM
    I am running standalone with the CollabNet plugin. Chris's instruction worked for me.

    I am having a problem with right-clicking in the editor window. My first right-click after certain actions takes about 15 seconds to get a response. After that one, then right-clicks are immediate until I do something like launch the CFM page in the browser.

    The Progress indicator does not show anything running in the background. The GC monitor shows that I typically have 128M of 248M.

    I get this behavior even from a fresh install. I'm not sure how to diagnose this.
  • Keith Ralston's Gravatar
    Posted By
    Keith Ralston | 5/17/12 11:42 AM
    Installed 2.0.1. The delay is down to 11 seconds. Everything else is pretty snappy.