COMMAND-LINE OPTION | DEFAULT | DESCRIPTION |
---|---|---|
-cert | Specifies the file containing the server certificate for encryption. | |
-commonItemCount | 0 | If multiple consumer threads are created (see -threads), each thread normally requests a unique set of items on its connection. This option specifies the number of common items to be requested by all connection. |
-apiThreads | -1 | Specifies the CPU core(s) to bind the internal EMA API thread(s) to dispatch received messages. The parameter is used when the application configures EMA to work in API dispatch mode (see -useUserDispatch). By default, EmaCppNIProvPerf does not bind the internal EMA API thread(s) to specific CPU core(s). For details on the internal EMA API thread, refer to the Enterprise Message API Developers Guide, 2.4 Product Architecture. Specifies the CPU physical mapping in format P:X C:Y T:Z, logical core ID (number), or no binding (-1). Specifies the physical mapping which binds the thread to the specified physical processor, core, and thread (P:X C:Y T:Z). This syntax specifies a physical CPU to bind to. P refers to processor, C refers to core, and T refers to thread. If T is not specified (or T:#), the thread will be bound to all threads on the specified processor. If C is not specified (or C:#), the thread will be bound to all cores and threads on that processor. Specifying only one number causes a logical core ID to be bound instead of a physical one. -1 means no bind. For example, when specified as "1,3", the internal EMA API threads will be bound to logical CPU cores 1 and 3. The number of threads set by the parameter -threads should be matched. For details on rsslBindThread, refer to the Transport API C++ Edition Developers Guide. |
-itemCount | 100000 | Sets the total number of items that the provider will publish. |
-itemFile | 350k.xml | Specifies the file that contains a list of items the provider will publish. For more details on input file information, refer to Section 8.2. |
-key | Specifies the file containing the server private key for encryption. | |
-latencyUpdateRate | 10 | Sets the number of updates with latency information sent per second. |
NOTE: • This number must be less than or equal to the total update rate (see -updateRate). • When you set the value “all” then the latency data is added to each update message. | ||
-mainThread | -1 | Specifies the CPU core to bind the main application thread that controls working threads, collects and prints statistics. By default, EmaCppNIProvPerf does not bind the main thread to specific CPU core. Specifies the CPU physical mapping in format P:X C:Y T:Z, logical core ID (number), or no binding (-1). Specifies the physical mapping which binds the thread to the specified physical processor, core, and thread (P:X C:Y T:Z). This syntax specifies a physical CPU to bind to. P refers to processor, C refers to core, and T refers to thread. If T is not specified (or T:#), the thread will be bound to all threads on the specified processor. If C is not specified (or C:#), the thread will be bound to all cores and threads on that processor. Specifying only one number causes a logical core ID to be bound instead of a physical one. -1 means no bind. For example, when specified "3", the main thread will be bound to logical CPU core 3. For details on rsslBindThread, refer to the Transport API C++ Edition Developers Guide. |
-maxPackCount | 1 | Specifies maximum number of messages packed in a buffer. When count is > 1, packing is enabled. |
-measureDecode | (no argument) | Configures EmaCppNIProvPerf to measure decoding time of messages. By default, the measurement is not produced. |
-measureEncode | (no argument) | Configures EmaCppNIProvPerf to measure encoding time of messages. By default, the measurement is not produced. |
-msgFile | MsgData.xml | Specifies the file that determines the provider’s message content. For more details on input file information, refer to Section 8.1. |
-nanoTime | (no argument) | Specifies nanosecond precision for latency information instead of microsecond. |
-noDisplayStats | (no argument) | Turns off printing statistics to the screen. |
-packBufSize | 6000 | If message packing is enabled (i.e. maxPackCount > 1), sets the size of buffer to use. |
-preEnc | (no argument) | Specifies pre-encoding for update messages. All the template message (see MsgData.xml) will be encoded before real sending. It decreases the time required for message preparation. By default, EmaCppNIProvPerf encodes messages each time. |
NOTE: When a latency data is required then the messages that contain latency is encoded each time (see -latencyUpdateRate). | ||
-providerName | Perf_NIProvider_ | Specifies the name of provider in XML configuration file (EmaConfig.xml). |
-refreshBurstSize | 10 | After the provider completes an update burst, it uses the time before the next burst to send any needed refreshes, monitoring the time to see whether it is time for the next tick time. This option configures how often the provider checks the time (in case checking is expensive for the system). |
-runTime | 360 | Sets the length of time for which EmaCppNIProvPerf runs, in seconds. |
-serviceId | 1 | Specifies the provider’s service ID. |
-serviceName | DIRECT_FEED | Specifies the provider’s service name. |
-statsFile | NIProvStats | Specifies the base filename used to write the provider's test statistics. |
-summaryFile | NIProvSummary.out | Specifies the base filename used to write the provider's test summary. |
-threads | The value of "-threads" serves two purposes: It defines the number of parallel threads/connections to be created AND where to bind each thread. For example, if an application wants to horizontally scale and open two connections, there should be two values for -threads: 0,1 OR P:0 C:0 T:0, P:0 C:0 T:1 OR -1, -1. The number of values specified indicates the number of threads to start (comma separated). The thread binding may be formatted or specified as follows: physical binding (P:X C:Y T:Z) OR logical binding (X) or -1 (no binding). Physical binding: specify physical CPU to bind to: P refers to processor, C refers to core, and T refers to thread. If T is not specified (or T:#), the thread will be bound to all threads on the specified processor. If C is not specified (or C:#), the thread will be bound to all cores and threads on that processor. Specifying only one number causes a logical core ID to be bound instead of a physical one. -1 means no bind. For example, when specified as "1,3", it creates two threads to publish items respectively, and they are bound to CPU cores 1 and 3. In conjunction with -threads, one may specify -apiThreads and -workerThreads. For details on rsslBindThread, refer to the Transport API C++ Edition Developers Guide. | |
-tickRate | 1000 | Sets the number of ticks per second (the number of cycles per second made by the provider’s main loop). Adjusting the tick rate changes the size of update bursts; higher tick rates result in smaller individual bursts and smoother traffic. |
-updateRate | 100000 | Sets the total number of updates sent per second, per connection. |
NOTE: This cannot be less than the tick rate, unless it is 0 (see -tickRate). | ||
-useServiceId | (no argument) | Turns on the usage of the service ID. See the -serviceId option. |
-useUserDispatch | 0 | Configures how EmaCppNIProvPerf and Enterprise Message API dispatch receive messages. When you select 0 (API dispatch model), then EmaCppNIProvPerf configures the Enterprise Message API to create an additional internal thread to dispatch received messages. When you select 1 (user dispatch model), the Enterprise Message API does not run a second thread and the EmaCppNIProvPerf is responsible for dispatching all received messages. By default, EmaCppNIProvPerf uses the API dispatch model. For details on how an Enterprise Message API application dispatches received messages, refer to the Enterprise Message API Developers Guide. |
-workerThreads | None | Specifies the CPU core(s) to bind the Reactor worker thread(s). By default, EmaCppNIProvPerf does not bind the Reactor worker thread(s) to specific CPU core(s). For details on Value Added Components, refer to the Transport API Value Added Components Developers Guide. Specifies the CPU physical mapping in format P:X C:Y T:Z, logical core ID (number), or no binding (-1). Specifies the physical mapping which binds the thread to the specified physical processor, core, and thread (P:X C:Y T:Z). This syntax specifies a physical CPU to bind to. P refers to processor, C refers to core, and T refers to thread. If T is not specified (or T:#), the thread will be bound to all threads on the specified processor. If C is not specified (or C:#), the thread will be bound to all cores and threads on that processor. Specifying only one number causes a logical core ID to be bound instead of a physical one. -1 means no bind. For example, when specified as "1,3", the Reactor worker threads will be bound to logical CPU cores 1 and 3. The number of threads set by the parameter -threads should be matched. For details on rsslBindThread, refer to the Transport API C++ Edition Developers Guide. |
-writeStatsInterval | 5 | Sets how often statistics are printed to the screen and statistics file (in seconds). |