This document describes the results of performance tests for WebSpellChecker Web API. The performance and load were tested and accessed depending on the following setup:

Testing Goal and Idea

Our main goal was to observe the response time of text processing and CPU utilization on the server in case when 10/20/50/100 users send simultaneous requests on various languages to the server with WebSpellChecker v5.5.9.

Environment and Testing Tool

Testing Process

We have run our tests continuously increasing the number of users accessing it for each of the languages in the default language group (17 languages). The cache setting was enabled for all set of tests. The tests took place in the following order:

  1. 10K words (6K characters) with 50 grammar problems 200 misspellings;
  2. 10K words with 50 grammar problems only;
  3. 10K words with 200 misspellings only.

We used the concept of tokens which is a complete sentence to be spell and grammar checked. In the test setup, we had 10 tokens. 

The measured was the response time and CPU utilization.

Observations and Findings

Our observations are presented in tables and charts below for WebSpellChecker Server v5.5.9.

1st Test Case for 10 Simultaneous Users

Chart below represents test results comparison for WSC v.5.3 and WSC v.5.4 and 10 simultaneous users with disabled cache.

Recommendations 

Here are the outcomes and aftermath as well as our advice on hardware and software requirements and notes on performance issues which users may encounter:

When cache is enabled, tests run much faster, and the results are almost identical for different cases due to the processed texts are the same. This case needs refinement of the text uniqueness or some text randomising for each request being sent. Our recommendation for this case is the following: specify the desired value of the CacheSize parameter in AppServerX.xml file to increase the speed of requests processing.