Performance was a very important goal for the ATL Server team. Throughout the design of ATL Server, the team was very focused on ensuring that the ultimate performance was maintained. All the areas of the library were individually tested to ensure great performance, and the library as a whole was consistently tested to ensure that great performance was being maintained .
One reason that performance was so critical in the design of ATL Server was the results of the Doculabs benchmark test. The Doculabs benchmark test, published in PC Week magazine, was designed to test the performance of a number of Web application implementations. The application used to measure performance was basically an online bookstore, with login, search, purchase, shopping cart, and checkout functionality. The test measured a number of high-end Sun Microsystems/Java solutions against two Microsoft implementations .
The test showed that the Visual Basic implementation (using ASP) was about twice as fast as the closest Java solution. The test also showed that the Visual C++ implementation (using ISAPI) was about twice as fast as the Visual Basic solution. Although this benchmark demonstrated that ISAPI and Windows 2000 (the Windows version used for the benchmark) had the performance capability to handle any application, it also brought to light a major problem with ISAPI: Implementing a real application with ISAPI was too difficult! The group of developers who created the ISAPI implementation complained about the time it took to write all of the framework code they required before they could even get started writing the application itself. In fact, because of the time constraints the developers were under for the benchmark, they werent able to do an optimal job. If you download the ISAPI implementation code from the Microsoft Web site (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnile/html/nilewp.asp), recompile and rerun it, and then create the same application with ATL Server (in about 1 or 2 weeks versus several months for the original ISAPI implementation), the ATL Server version should be about 10 percent faster, as the team itself discovered when the ATL Server quality assurance (QA) team (none of whom had worked on the original application) did just that.
This benchmark and the problems encountered by the group doing the ISAPI implementation were key driving factors in the design of ATL Server, which is why maintaining hand-tuned ISAPI performance with the library was a key design goal. The ATL Server team definitely reached this goal, and in 99.99 percent of cases there should be no significant difference in performance between the hand- tuned ISAPI version and the ATL Server equivalent.
Many developers are interested in the performance of ASP.NET compared to ATL Server. Many issues are involved with comparing these two disparate technologies. ASP.NET is designed as an alternative to ASP and JSP, whereas ATL Server is designed for C++ ISAPI developers. Although specific performance issues will depend on your application setup and limitations (whether youre database bound, network bound, CPU bound, memory bound, and so on). ATL Server has been designed so that it has minimal dependencies and enables developers to write very high performance web applications and web services quickly and easily.