TX Text Control .NET Server

Performance and Scalability

Topic

Whether an application merges thousands of invoices overnight or keeps hundreds of Document Editors open at the same time, the same questions come up: how many documents one process creates in parallel, how much memory an editing session takes, how large a document may be and when another instance is needed. Developers and operators planning such a deployment get the answers from Text Control's measurements and recommendations, together with the code that applies them.

Two Kinds of Load

An application with TX Text Control .NET Server carries two kinds of work, which grow differently:

WorkWhere it runsWhat it usesGrows with
Document processing with ServerTextControl and MailMerge: generating, merging, convertingIn the process of your application, or in worker processes that it startsCPU and memory, depending on the documentsThe number and size of the documents
Editing sessions of the Document EditorIn a worker process of the backend TXTextControl.Web.Server.Core for each open editor50 to 150 MB of memory per sessionThe number of concurrent editors

Text Control describes processing as unpredictable, CPU-heavy work and editing as predictable, memory-bound work. For many concurrent users, it recommends running them in separate services that scale on their own, as Scaling Beyond One Instance summarizes.

Find the Right Page

If you want toRead
Create documents on several threads, in request handlers or in background servicesThreading
Merge large batches in parallel worker processes with ParallelMailMergeMultiple Processes
Size containers for editing sessions and scale document processing on CPU or queue lengthContainer Scaling
Understand where memory is used, dispose instances and watch editing sessionsMemory Usage
Show, upload, merge and process documents with thousands of pagesLarge Documents
Apply measured recommendations and measure your own workloadPerformance Best Practices

Where to Start

  1. Performance Best Practices: the measures that make each document faster, from the choice of the engine to the moment the PDF is created.
  2. Threading: the rules for ServerTextControl in a web application.
  3. Multiple Processes when you process large batches, or Container Scaling when many users edit documents at the same time.

The Deployment Guide shows how to run several instances behind a load balancer, and Scaling Containers which requests need sticky sessions.