This blog entry describes the results of a test that was preformed to benchmark TX Text Control Server for ASP.NET (incl. Windows Forms) and Aspose.Words (formerly known as 'Aspose.Word'). You can read the full text of the report below or download my latest white paper:

Cover of 'Benchmarking TX Text Control Server for ASP.NET (incl. Windows Forms) and Aspose.Words (formerly known as 'Aspose.Word')' white paper
TX Text Control Server for ASP.NET (incl. Windows Forms) Solutions
Benchmarking TX Text Control Server for ASP.NET (incl. Windows Forms) and Aspose.Words
Why TX Text Control is better suited to server side word processing.
Text Control Download PDF [180 KB, PDF]

Introduction to Server Side Word Processing Benchmark

TX Text Control Server for ASP.NET (incl. Windows Forms) benchmark

Centralizing word and document creation processes is a current trend in enterprise applications. Creating such business applications requires very stable and high-performance components that are able of handling thousands of documents per hour.

In this extended blog, I are going to describe benchmark and stress tests that have been performed with the following current server side word processing components:

  • TX Text Control Server for ASP.NET (incl. Windows Forms)
  • Aspose.Words and Aspose.PDF

These products have been specifically designed to run in server side applications and therefore do not have a user interface. All interactions are performed programmatically from application code, thus making them ideal for batch processing or printing large volumes of documents.

TX Text Control Server for ASP.NET (incl. Windows Forms) supports many industry standard document formats, including MS Word, Rich Text Format (RTF), HTML, XML, ANSI TXT and Adobe PDF.

Aspose.Words (formerly known as 'Aspose.Word') itself only supports the MS Word format. Therefore, it is used in connection with Aspose.PDF to perform the typical application that is realized in the benchmark tests. Aspose.Words supports an interface to call Aspose.PDF directly from code.

Setup and Methodology of Benchmark

One of the most typical applications for server-based applications is the modification of previously made documents. The benchmark test consisted of three steps:

  1. Load a 10 page MS Word document
  2. Replace 2 strings on every page (20 strings in total)
  3. Save the document as an Adobe PDF

In this test, the same server environment was used for both components. The components were used in two different ASP.NET web applications that opened the document, replaced the strings and saved the resulting document back to the server.

The applications itself converted just one document per request. This simulates a typical scenario where concurrent users are triggering the document creation process in a web-based application.

Server Hardware

We performed the test on a single processor Intel Celeron 2.0 GHz server with 512 MB RAM, running Windows 2003 Server and IIS 6.0. The server was connected to a local area network, interfaced by a 100 MBit network card.

The benchmark aims to illustrate how the components perform under minimum hardware conditions. Naturally, the faster the hardware, the faster the server based application will perform.

Software Used for Benchmark

To measure the response times, we used the benchmarking tool Apache-Bench from the Apache Software Foundation (www.apache.org). Apache-Bench is a tool for benchmarking the HyperText Transfer Protocol (HTTP). It has been developed to quantify the performance of web servers and web based applications.

This especially shows how many requests per second the application is capable of serving. It allows a specific number of requests on a URL to be started. The number of concurrent requests are scalable as well. The benchmarking software runs on another server and sends the requests to the test server that contains the test applications.

Both servers are connected through a private 100 MBit local network. The tests were performed under identical conditions to ensure valid results.

Test Categories

Three different categories were tested:

  1. Total time of entire test
  2. Time per request
  3. Requests per second

The first category is the complete amount of time the application needed to process all requests. Four different numbers of requests were sent to the test server: 10, 100, 150 and 1000 requests. That means that the server sent, for instance, 100 requests to the test page. In this first test, there were no concurrent requests. In other words, the requests were sent one after another.

Total Time of Entire Test

This is the time the server-based application took to process all requests. In the four tests, 10, 100, 150 and 1000 MS Word documents were loaded and exported as Adobe PDF. The results show that TX Text Control Server for ASP.NET (incl. Windows Forms) needed 3.31 seconds to process 10 requests and 313.36 seconds to process 1000 documents, thus the time increased linearly. For the same document, Aspose.Words (formerly known as 'Aspose.Word') needed 14.31 seconds for 10 requests and 1422.48 seconds for 1000 requests. This is about 4 times longer than TX Text Control Server for ASP.NET (incl. Windows Forms).

Graph: Requests vs. Completion time in seconds

TX Text Control Server for ASP.NET (incl. Windows Forms)
Aspose.Words (formerly known as 'Aspose.Word')

Time Per Request

This second graph illustrates that the time per request using TX Text Control Server for ASP.NET (incl. Windows Forms) leveled off at an average value of 316 milliseconds. This is the time a document conversion process took on average. In contrast, Aspose.Words (formerly known as 'Aspose.Word') had an average request time of 1416 milliseconds. Using Aspose.Word, converting one document took nearly 1.5 seconds. TX Text Control Server for ASP.NET (incl. Windows Forms) was therefore about 4.5 times faster than Aspose.Words (formerly known as 'Aspose.Word').

Graph: Requests vs. Time per request in milliseconds

TX Text Control Server for ASP.NET (incl. Windows Forms)
Aspose.Words (formerly known as 'Aspose.Word')

Requests Per Second

This third graph illustrates the number of requests per second that were performed on both components. It shows that Aspose.Words (formerly known as 'Aspose.Word') was capable of handling 0.7 requests per second. TX Text Control Server for ASP.NET (incl. Windows Forms) was able to process more than 3 requests per second. In 1 second, TX Text Control Server for ASP.NET (incl. Windows Forms) was able to serve 2.5 requests more than Aspose.Words. In other words, TX Text Control Server for ASP.NET (incl. Windows Forms) was able to perform the merging and conversion operations 4.5 times faster than Aspose.Words (formerly known as 'Aspose.Word').

Graph: Requests vs. Requests per second

TX Text Control Server for ASP.NET (incl. Windows Forms)
Aspose.Words (formerly known as 'Aspose.Word')

Additionally, we tested concurrent requests. In this test, we sent 100 requests to the application with a different concurrency level (1, 10 and 20). This test showed the same results: TX Text Control. NET Server needed 30.93 seconds to process 100 requests with a concurrency level of 10 and 3.21 seconds with 20 concurrent requests. Aspose.Words (formerly known as 'Aspose.Word') needed 117.87 seconds to process 100 requests with 10 concurrent requests and 11.71 seconds with 20 concurrent requests.

Conclusion of Benchmark

Performance is one of the most important aspects when choosing a specific server software.

These tests show that TX Text Control Server for ASP.NET (incl. Windows Forms) is about 4.5 times faster then Aspose.Words.

Consider a server-based application where the document creation processes are centralized on a server. A typical application is the automatic invoice creation in an online store or the creation of customized sales reports.

In these applications, performance is very important to serve high-level documents as fast as possible. This saves CPU time for other processes to provide a stable web-based application.