Chapter 18. Optimizing Data Throughput

Table of Contents

18.1. Binary Mode Tunnel/Mirror (TCP) Connections
18.2. Tunnel/Mirror (TCP) Connections for Slow Networks
18.3. Old Value Queuing
18.4. Un-Buffered Delivery
18.5. Screen Output
18.6. CPU Saturation
18.7. How to Optimize
18.7.1. Tunnel/Mirror (TCP) connections
18.7.2. DataHub C++ API
18.7.3. Gamma scripts

The OPC DataHub has a wide range of configuration options. Among these there are several settings that will optimize data throughput. These are explained in this chapter.

18.1. Binary Mode Tunnel/Mirror (TCP) Connections

TCP/IP connections to the OPC DataHub can be either ASCII or binary mode. A large part of the CPU cost of transmission is marshalling messages (constructing messages at the source and parsing them at the destination). The binary mode is more efficient in both network bandwidth and CPU usage for both the sender and the receiver. Binary mode requires that the CPU architecture of the sender and the receiver agree, so you can only use this mode if you are running both the sender and the receiver on an Intel x86 CPU. The CPU gain could be as much as 50% when using binary mode. Numeric data benefits most from this option.

How to Optimize

    For tunnelling connections, always use binary mode if possible. Please refer to How to Optimize, Binary mode transmission for details.

    For TCP/IP connections using the C++ API, always use binary mode if possible. Please refer to How to Optimize, Section 18.7.2, “DataHub C++ API” for details.

    Always use binary mode when writing programs in Linux or QNX with the Cogent C API. Please refer to Optimizing Throughput in the Cogent C API manual for details.