AnandTech 5.0

After 5 years on the ColdFusion platform, the time had come to move on to what we think is a better platform for the future of the site - Microsoft .NET. The decision to move away from ColdFusion was a tough one in some ways. ColdFusion offers a tremendous advantage over other languages, thanks to its RAD (Rapid Application Development) roots, but the trade offs were cost and stability. Cost was definitely the major factor in our decision. Our server platform is standardized on Microsoft Windows, so .NET is free for us, while ColdFusion costs us $1299 USD per server. As we continue to grow, and keep up with the newer versions, the costs rise. One could argue that we would make up for those costs with the time that ColdFusion saves the developer. However, we found that not to be the case, and we'll explain why later.

We did quite a bit of testing prior to beginning development, writing a skeleton framework and load testing it and comparing the results to ColdFusion. The results were attractive with .NET definitely, offering some serious performance gains (more to follow on our benchmark results). The architecture of the new AnandTech.com site consists of a VB.NET API behind the ASP.NET user interface; the API can be exposed as a web service with the flick of a switch, if necessary. We chose VB as it is a more natural progression from ColdFusion syntax, and offers the same performance and features as C# does. VB.NET is a completely different animal than VB; although the syntax may be similar in some ways, it offers a heck of a lot more than VB ever did.

Writing the API is what took the most time, as we had to port over our back-end framework from ColdFusion into our new VB.NET API. Our first step was to write a few functions that handled some of the tedious work in writing any web application: a database class that handles all the database calls, which reduces the amount of lines of code we had to write for each call; a few list functions; and, some other little functions that ColdFusion had built in. Those functions took a few hours at most to write, and covered the main functions that we had taken for granted in ColdFusion. After those functions were written, we found that the RAD argument started to diminish, especially with the slick IDE that Microsoft offers. Visual Studio .NET is, bar none, the best IDE that we've seen. It offers a robust development environment with extensive function insight features, which really speed up the development process. If Macromedia were to develop this kind of IDE for ColdFusion, I think the differences between the two platforms would most definitely start to diminish.

The next major piece of work that we did was to transition the interface from HTML to CSS. This was a major undertaking, but once the framework was complete, the rest just fell into place. The old site was all HTML, and had a few too many tables in it. The result was a slower rendering site, and combined with the ads, it only made the situation worse. As a result, we took a 130K site down to around 45K in HTML. Needless to say, the page rendering times are night and day in comparison.

Hardware used in version 5.0
5 x Dual AMD Athlon MP 1900+ w/ 1GB Memory

So, after we were finished, how does it perform? Take a look below.

Note: These benchmarks compare the old anandtech site to the new anandtech site, not ColdFusion to .NET. There were many changes that resulted in the performance increase, the platform was just one of them.

AnandTech Old vs New
The graph above depcits how many requests per second the server was handling during the load test.



AnandTech Old vs New
The graph above depicts how long the site takes (under load) to deliver the last byte to the client.

Conclusion

As you can see, the new site was a technical success for us. As always, there was feedback after the initial launch, and we addressed most of the comments. We've come a long way from the day of our first dynamic site, and have learned more in 3-4 years than some people do in their entire career. So what's next? Well, 64-bit is certainly on the horizon; we already have a 64-bit platform in production that is performing incredibly well. We'll have an article in the near future on how our quad Opteron performed in comparison to our older platform. For now, it's back to building a better AnandTech; it never ends...

AnandTech 4.0
Comments Locked

67 Comments

View All Comments

  • Brickster - Wednesday, July 28, 2004 - link

    Great article!!! Thank you so much for publishing this, as it is a testament to Anandtech's drive to help the community understand and appreciate hardware AND software technology for all that it can help us in our personal and business ventures.

    Personally, I am starting a database driven website, and have been looking for advice on what approach to take. This insight has helped me TREMENDOUSLY, and I thank you for the article!

    Keep up the good work and do let us know how things go!

    Cheers,
    Brickster
  • JasonClark - Wednesday, July 28, 2004 - link

    Geesh jason, spell. Use what best fits your business.
  • JasonClark - Wednesday, July 28, 2004 - link

    AutomaticErik, and .NET has a lot of advantages over PHP, PHP is most certainly no better than .NET. They both have their uses, and their different target markets. Use what your best fits your business, thats the bottom line. PHP does not fit our system infrastructure, so we use .NET.
  • washboard - Wednesday, July 28, 2004 - link

    Maybe this is not the place, BUT
    Using Mozilla 1.7 with "enable Java Script on" site loads very slow. With it off the site is snappy. Don't have the problem with IE. Have a very fast DSL connection. Love this site, keep up the good work.

    Thanks

    John Coleman
  • AutomaticErik - Wednesday, July 28, 2004 - link

    I've been doing web design and database management for years and I've never once run across a project that wouldn't be able to use PHP/MySQL. I think most don't realize the true power you have with a PHP/MySQL setup. Its certainly every bit as powerful as any of the other soultions out there and in most tests and benchmarks, its faster and more efficient. I've even run personal benchmarks and found this to be true.

    All in all, people use what they are comfortable with and in that respect, PHP isn't for everyone. But it does hold many advantages over .NET. Most just don't mess around with it enough to find that out.
  • JasonClark - Wednesday, July 28, 2004 - link

    Sling, we actually should run whatever we want to..., or whatever we feel works well in our environment. PHP isn't for everyone and holds no advantage over .NET. .NET is free, granted the OS is not but neither are commercial linux solutions like redhat or suse?. Again, we like windows, it works just as well as linux and fits our needs just fine.

    L8r.
  • SlingXShot - Wednesday, July 28, 2004 - link

    Btw Jason, you have a bug. You should write some kind of script to warn the user when clicking Post Comment when this form box is empty.
  • SlingXShot - Wednesday, July 28, 2004 - link

    So many updates, you guys should have started with php, no costs running that. With PHP when there is an update, and you are using old code, there is always a easy very around it, with quick fixes. I can't wait to play around with PHP 5.
  • SlingXShot - Wednesday, July 28, 2004 - link

  • sonicDivx - Wednesday, July 28, 2004 - link

    Jason,

    Thx for the reply, yeah I was wondering would make a great case study. Also be a good lesson for developers. Glad its all worked for ya, and my interest is peaked in looking at VS 2003.

    That's cool. I'll tell my co-worker who is Alpha testing Blackstone (next version of CF) that they really need to keep these things in mind.

Log in

Don't have an account? Sign up now