Optimizing the Subsystem for Deployment
For deployment systems running Windows 10 or Windows 11, we recommend their respective Long Term Servicing Channel (LTSC) versions.
General Behavior Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
HAL Timer Period |
Your application's Timer Period must always be a multiple of the HAL Timer Period. The default HAL Timer Period is 100. Note: Use caution when setting the HAL timer period below 20 microseconds. If the HAL timer period is set too low, it can inversely impact performance or cause your system to hang. Fully test the timer period you set with your real-time application on all systems on which you will deploy to verify that the hardware can accomplish the compilations required in the period set. The Time Quantum and Watchdog Timer settings are dependent on the HAL Timer Period. All component timers (NL2, TCP/IP, E-CAT, etc.) are also dependent. |
|
Default time quantum for all RTSS threads |
0 (disabled, all threads run to completion; default) Note: If the thread time quantum value is less than the HAL timer period, wRTOS will set the interval to the same value as the HAL timer period. If the thread time quantum interval is greater than the HAL timer period, wRTOS will modulo up the HAL timer period. The thread time quantum interval must be a multiple of the HAL timer period. |
|
Free the Stack on a TerminateThread call |
ON (free the Thread Stack on a TerminateThread call) |
|
Use priority inversion |
ON (use priority inversion; default) |
|
Enable performance optimization with Resource Director Technology (RDT) Note: This functionality is hardware dependent. |
Optimize performance (enabled)
|
Exception Handling Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Exception behavior |
Use Structured Exception Handling; terminate process on unhandled exception (default) |
Watchdog Timer Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Monitor for runaway threads |
OFF (default) |
Power Management Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Enable Windows idle detection |
OFF (default) Note: To eliminate jitter with RTSS timer response latency, we recommend that you disable Windows idle detection. As a result, you may see 100% CPU usage in the Windows Task Manager when the Subsystem is running. There is no side effect on Windows load balancing for this type of 100% CPU usage. |
|
Override Windows Processor Energy/Performance Bias |
ON |
Note: For optimal performance when running wRTOS on a laptop, we recommend that you convert Display adapters to Microsoft Basic Display Adapter in the Windows Device Manager. If you choose not to convert display adapters, you may experience latency.
Memory Settings
See the Memory page in wRTOS Settings for more information on these settings.
User Process
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Minimum size for internal MSpace (kilobytes) |
This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace. |
|
Minimum size for external MSpace (kilobytes) |
This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace. |
|
Auto expand MSpaces |
OFF |
|
Auto shrink MSpaces |
OFF |
|
Zero memory on allocation |
OFF |
Subsystem
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Subsystem process internal MSpace minimum (kilobytes) |
This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace. |
|
Commit at Subsystem startup |
OFF |
|
System process external MSpace minimum (kilobytes) |
This value is based on your application’s memory usage. Before deployment, you can query the memory usage by calling RtQueryProcessMSpace. Note: All process shared memory and IPC object memory allocations come from this value. |
|
Auto expand MSpaces |
OFF |
|
Auto shrink MSpaces |
OFF |
Network Link Layer (NL2)
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
NL2 external MSpace minimum (kilobytes) |
This value is based on the number of enabled interfaces. The minimum value is 64 kilobytes. The default value is 1024 kilobytes. |
|
Auto expand MSpaces |
OFF |
TCP/IP
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
External MSpace minimum (kilobytes) |
The minimum size of the TCP/IP Stack process's external MSpace. Note: This value must be at least the TCP/IP heap allocation size plus 2176 kilobytes. |
|
Memory allocated to the TCP/IP heap (kilobytes) |
3072 kilobytes Note: This memory is allocated from the External MSpace (see above), so the TCP/IP heap size MUST be 2176 KB less than the Minimum size for external MSpace (kilobytes) value if Auto expand MSpaces is set to OFF (see below). The required memory depends on the number of interfaces and open sockets. |
|
Auto expand MSpaces |
OFF |
Monitoring Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Monitor applications |
OFF |
Process Output Settings
Real-time Process Output
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Display output in console windows |
ON (default) Note: Printing to the console is not deterministic. Remove printing from deployed applications if it is not needed. |
|
Choose how to display output |
Separate console window for each process (default) Note: This option uses more memory than printing to a single console window. |
Real-time Process Logging
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Log process output |
OFF (default) |
Remote Access Settings
| wRTOS Settings | Recommended Value for Deployment |
|---|---|
|
Allow remote debugging connections on this computer |
OFF (default) |