Archive for September, 2009
September 30, 2009 at 1:04 pm
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged Flex Builder, Flex Compiler, Flex Compiler API, HellFire Compiler Daemon, hfcd
I updated hfcd_3.zip this morning. The update fixed two issues:
- ‘clean builds’ did not clean cache files properly.
- distributed gc on the server side did not clear all the obsolete BuilderApplication objects.
Updating your HFCD installation is easy.
- Download hfcd_3.zip.
- Unzip your new hfcd_3.zip to a new directory.
- Copy all the files in the new directory to your existing HFCD installation.
- Run ‘ant patch’.
Permalink
September 29, 2009 at 4:48 pm
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged Flex, Flex Builder, Flex Compiler, Flex Compiler API, HellFire Compiler Daemon, hfcd
Many of you who build medium to large-sized Flex projects with Flex Builder know that you need to modify the memory settings of the JVM in FlexBuilder.ini. For example, my JVM settings in FlexBuilder.ini look like this:
-Xms512m -Xmx1024m -XX:MaxPermSize=256m -XX:PermSize=64m
Other than having bigger -Xms and -Xmx values, it’s exactly the same as the default setting. The Flex Builder team did not arbitrarily set these values. They did not set the values for the compiler only. They set the values so that all the features in FB achieve optimal performance.
One of the arguments of using HFCD is that if you run the compiler out-of-process, you get a chance to configure the JVM for the compiler only. The HFCD installation only puts in the following default setting:
-Xms512m -Xmx1024m -XX:+UseParNewGC
I take the minimalist approach here because I want to give the HotSpot VM maximum flexibility to do its own tuning at runtime. So, does this HFCD out-of-process-compilation argument make sense? Well, let’s take a look at using Flex Builder to compile the Flex framework (a 800-file project).
Click here to read the rest of this entry.
Permalink
September 29, 2009 at 11:54 am
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged Flex, Flex Builder, Flex Compiler, Flex Compiler API, HellFire Compiler Daemon, hfcd
As promised, I’m going to talk about how to install and configure the HellFire Compiler Daemon, a.k.a. HFCD. Again, if you’ve never heard of HFCD before, please check out the following posts:
- The Flex Compiler API… RPC Style
- A New Version of HFCD
- HFCD Beta Is Now Available
Before you download HFCD, make sure you meet the following system requirements:
- Java 5 installed (Java 6 highly recommended). BTW, Flex Builder ships with JRE 5. It’s okay to use that, but the point of using HFCD is build Flex apps faster… and Java 6 is *faster* than Java 5…
- Apache Ant installed. Mac OS X ships with Ant. If you use Windows, go download it at http://ant.apache.org.
Now, go to http://stopcoding.org/. Register and download hfcd_3.zip. The installation consists of 2 parts:
- Install the HFCD server and client SDK. In this step, you need hfcd_3.zip.
- Install the HFCD for Flex Builder plugin. In this step, you install the plugin via the Eclipse/Flex Builder Update Manager.
Click here to read the rest of this entry.
Permalink
September 28, 2009 at 5:47 pm
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged Flex, Flex Compiler, Flex Compiler API, HellFire Compiler Daemon, hfcd
I am pleased to announce that HFCD beta is now available for download. As I mentioned in my previous post, this is a much improved version, with a few key features added to make it a valuable tool for Flex developers. I am pretty excited about this but I need your help. If you are a Flex Builder user, please download HFCD and give it a try.
Click here to download HFCD and read the rest of this entry.
Permalink
September 25, 2009 at 2:40 pm
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged fcsh, Flex, Flex Compiler, Flex Compiler API, HellFire Compiler Daemon, hfcd
Recently I picked up the hfcd project again and finally added features that I promised last year. Yes, it’s a new version of hfcd. This morning, I’ve finished testing what I got so far. It’s in beta quality, but I think I should release it so you folks can give it a spin and give me some feedback.
Let me give a brief intro of what hfcd is. HellFire Compiler Daemon is a RPC-style Flex Compiler server. Clients use the Flex Compiler API to communicate with hfcd. Basically, client processes use hfcd to compile Flex applications. The most obvious client is Flex Builder 3. FB3, by using the hfcd client SDK, can offload compilations to hfcd so that its memory and CPU resources can be reserved for other FB3 popular tasks: design view, code model, profiling, just to name a few. The result is dramatic. hfcd compiles Flex applications much faster in most cases than compiling apps in-memory with FB3.
The hfcd version I released last year was an proof-of-concept attempt. One limitation was that it had to run locally with FB3 (i.e. on the same machine). Now, with the new features recently added to hfcd, it’s able to run on a remote machine. This implies that if the remote machine has more memory and faster processors, the build time could be dramatically reduced. This is certainly one option of improving the compiler performance.
Furthermore, I added the following features:
- hfcd supports a virtual file system that holds source files in memory. It means your hfcd server machine will never be littered with codes from many different sources.
- hfcd supports background compilations, both full and incremental. This is a game changer. Why? Developers usually edit multiple files before they build (Ctrl-B) and test. As long as developers save changes continuously (instead of keeping all the changes to the one-and-only Ctrl-S), the background compilation could kick in and compile some changes while developers are making the rest of the changes. The result, developers wait much shorter incremental build time after the last Ctrl-S and Ctrl-B.
- hfcd takes advantage of multi-processor-core technology wherever possible. It attempts to build applications and libraries that have no mutual dependencies simultaneously. For example, if you have 2 SWC projects and 3 SWF projects. The SWC projects don’t depend on each other. With FB3, your build time would be: T(SWC1 + SWC2 + SWF1 + SWF2 + SWF3). With FB3 + hfcd, your build time would be roughly: T(max(SWC1, SWC2) + max(SWF1, SWF2, SWF3))! Another game changer!
The currently supported SDK version is 3.3.0.4852. I hope to add support for 3.4.0 in the near term. UPDATE (Nov 25th, 2009): Now HFCD supports Flex SDK 3.4.1 and 4.0.0.
In the next few weeks, I need some developers to test my first beta. If you are interested, please email hfcd@stopcoding.org. This weekend, I hope to get a web page ready so you folks can register and download there.
Permalink
September 25, 2009 at 2:39 pm
· Filed under Flex Compiler API, HellFire Compiler, Technology, hfcd ·Tagged HellFire Compiler Daemon, hfcd
Hi, everyone. It’s been almost a year since my last post. I first have to apologize for not keeping in touch and maintaining the blog. Where did I go? Well, it’s a long story, but I can share it with you when I get a chance. So, what’s shaking? Well, I hope it is something that many of you have been waiting for…
Now, please go ahead and check out my next post.
http://stopcoding.wordpress.com/2009/09/25/a-new-version-of-hfcd
Permalink