通常情况下,Runtime 环境仅提供功能,不一定要进行性能优化。下面表格列出了部署 RTX64 运行时建议的 RTSS 子系统配置。可以使用 RTX64 控制面板,或使用本机(或托管)代码框架,以编程方式配置这些设置项,从而提高子系统和应用程序性能。
对于运行 Windows 10 或 Windows 11 的系统,建议使用其 LTSC(长期服务通道)版本。参考 Support for Windows 10 Updates(RTX64 对 Windows 10 的支持)页面,了解 Windows 10 对 RTX64 的支持描述。参考 Support for Windows 11 Updates(RTX64 对 Windows 11 的支持)页面,了解 Windows 11 对 RTX64 的支持描述。
RTX Subsystem(子系统)配置选项
改变内部系统行为
控制面板设置 | 推荐的值 |
---|---|
Change the HAL Timer Period 更改 HAL 定时器周期 | 应用程序的定时器周期必须始终大于 HAL 定时器周期设置。默认 HAL 设置为 100。 注意:将 HAL 定时器周期设置为低于 20 微秒时要特别小心。如果 HAL 定时器周期设置得太短,可能会对性能产生负面影响或导致系统挂起。建议在要部署的所有系统上全面测试实时应用的定时器周期,以验证硬件是否有能力完成程序的编译和运行。 |
Free the Stack on TerminateThread calls 调用 TerminateThread 时释放堆栈 | 在 TerminateThread 调用时释放堆栈 |
Use priority inversion 使用优先级反转 | 使用优先级反转(默认) |
Optimize performance with Intel® Resource Director Technology (RDT) 使用 Intel RDT 优化性能 注意:此功能依赖于硬件。 | 优化性能(已启用) ● 缓存分配技术(CAT:Cache Allocation Technology)模式: o 平坦性能模式(Flat performance mode)(默认):所有 RTSS 逻辑处理器都同等配置所有 RTSS L3/L2 缓存; ● 内存带宽分配(MBA:Memory Bandwidth Allocation)模式: o 平坦性能模式(Flat performance mode)(默认):所有 RTSS 内核均配置为最小内存延迟。 |
更改内存分配行为
更多信息,请参阅 RTX64 控制面板中的 Managing Memory(管理内存)部分。
控制面板设置 | 推荐的值 |
---|---|
Manage Subsystem and application memory behavior: 管理子系统和应用程序内存行为: ● Use local memory (deterministic) 使用本地内存(确定性) ● Use Windows memory (non-deterministic) 使用 Windows 内存(非确定性) | Use local memory (deterministic) |
Zero memory on allocation 分配 0 内存 | Disabled 禁用 |
Process memory allocation space / Minimum size for external MSpace (kilobytes) 进程内存分配空间/外部MSpace 的最小值(千字节) | 基于应用程序的本地内存使用情况。部署之前,可以调用 RtQueryProcessMSpace 查询本地内存使用情况。 |
Process memory allocation space / Auto expand MSpaces 进程内存分配空间/自动扩展 MSpaces | Disabled 禁用 |
Process memory allocation space / Auto shrink MSpaces 进程内存分配空间/自动回收 MSpaces | Disabled 禁用 |
System process memory allocation space / Minimum size for internal MSpace (kilobytes) 系统进程内存分配空间/内部 MSpace 的最小值(千字节) | 基于应用程序的本地内存使用情况。部署之前,可以调用 RtQueryProcessMSpace 查询本地内存使用情况。 |
System process memory allocation space / Minimum size for external MSpace (kilobytes) 系统进程内存分配空间/外部 MSpace 的最小值(千字节) | 基于应用程序的本地内存使用情况。部署之前,可以调用 RtQueryProcessMSpace 查询本地内存使用情况。 |
System process memory allocation space / Commit at Subsystem startup 系统进程内存分配空间/子系统启动时提交 | Disabled 禁用 |
System process memory allocation space / Auto expand MSpaces 系统进程内存分配空间/自动扩展 MSpaces | Disabled 禁用 重要提醒!当 Auto expand MSpaces 禁用时,需要为整个系统中内部和外部资源配置子系统的内存用量。包括网络组件(NAL 和 RT-TCP/IP 栈)以及 RTX64 运行时提供的其他工具和实用程序。如果子系统没有足够的可用内存,实时进程将无法运行或无法创建 IPC 对象,并返回ERROR_NOT_ENOUGH_MEMORY。 |
System process memory allocation space / Auto shrink MSpaces 系统进程内存分配空间/自动回收 MSpaces | Disabled 禁用 |
Network memory allocation space / Network Abstraction Layer (NAL) memory allocation space / Minimum size for MSpace (kilobytes) 网络内存分配空间/网络抽象层 (NAL) 内存分配空间/MSpace 的最小值(千字节) | 基于 NAL 的本地内存使用情况,这取决于启用的接口数量。 |
Network memory allocation space / Network Abstraction Layer (NAL) memory allocation space / Commit at Subsystem startup 网络内存分配空间/网络抽象层(NAL)内存分配空间/子系统启动时提交 | Disabled 禁用 |
Network memory allocation space / Network Abstraction Layer (NAL) memory allocation space / Auto expand MSpaces 网络内存分配空间/网络抽象层(NAL)内存分配空间/自动扩展 MSpaces | Disabled 禁用 |
TCP/IP 堆栈内存分配空间/网络抽象层 (NAL) 内存分配空间/MSpace 的最小值(千字节) TCP/IP Stack memory allocation space / Network Abstraction Layer (NAL) memory allocation space / Minimum size for MSpace (kilobytes) | TCP/IP 栈进程外部 MSpace 的最小值。该值需要足够大才能支持 RT-TCP/IP 栈堆分配。 如果您将 TCP/IP 栈与虚拟网络结合使用,则应使用以下公式来确定需要分配的内存量: Minimum=1.5*(([50]_k+(8_k*(numEnabledInterfaces-1)))+([150]_k*((numEnabledInterfaces+1)/2))+(400*numSockets)) 在这个算式中: ● 第一个接口为50k;每个附加接口8k ● 150k 是一个连接的大小;(interfaces+1)/2 的数量旨在完善总连接大小的估计 ● 400 是 socket 的大小 ● 将整个值乘以 1.5,再次四舍五入估算值 |
TCP/IP Stack memory allocation space / Network Abstraction Layer (NAL) memory allocation space / MSpace memory allocated to the TCP/IP Stack heap (kilobytes, not including memory allocated by device drivers at startup) TCP/IP 堆栈内存分配空间/网络抽象层 (NAL) 内存分配空间/分配给 TCP/IP 堆栈堆的 MSpace 内存(千字节,不包括设备驱动程序在启动时分配的内存) | 3072 KB 注意:TCP/IP 栈必须确保在启动时分配所有必要的内存。该分配的内存应该足够大,以包含所有发送和接收缓冲区。 |
TCP/IP Stack memory allocation space / Network Abstraction Layer (NAL) memory allocation space / Auto expand MSpaces TCP/IP 堆栈内存分配空间 / 网络抽象层 (NAL) 内存分配空间 / 自动扩展 MSpaces | Disabled 禁用 |
更改监控设置
控制面板设置 | 推荐的值 |
---|---|
Enable instrumentation within the subsystem for monitoring real-time applications 在子系统内启用测试以监控实时应用程序 | 禁用以获得最低延迟 |
配置看门狗定时器设置
控制面板设置 | 推荐的值 |
---|---|
Monitor for runaway threads/Timeout 监控失控线程/超时 | 禁用以提升性能 |
配置异常支持
控制面板设置 | 推荐的值 |
---|---|
Choose a method for treating a faulting process 选择处理故障进程的方法 | Terminate Faulting Processes (default) 终止故障进程(默认) |
Choose a method for each exception type 为每种异常类型选择一种方法 | Structured Exception Handling (default) 结构化异常处理(默认) |
控制电源管理设置
控制面板设置 | 推荐的值 |
---|---|
Enable Windows idle detection 启用 Windows 空闲检测 | Not selected(未选择) 注意:为了消除 RTSS 定时器响应延迟带来的抖动,建议禁用 Windows 空闲检测。所以,当子系统运行时,可能会在 Windows 任务管理器中看到 100% CPU 使用率。这种类型的 100% CPU 使用率,对 Windows 负载平衡不会产生任何影响。 |
Windows Energy/Performance Bias Windows 节能/性能偏差 | Override Windows (覆盖 Windows 设置) |
注意:为了在笔记本电脑上运行 RTX64 时获得最佳性能,建议在 Windows 设备管理器中将显示适配器转换为 Microsoft 基本显示适配器。如果没有转换,则可能会遇到延迟。
配置远程调试
控制面板设置 | 推荐的值 |
---|---|
Allow remote debugging connections on this computer 允许此计算机上的远程调试连接 | Not selected(未选择) |
配置实时应用程序输出
控制面板设置 | 推荐的值 |
---|---|
Display real-time process output in console windows 在控制台窗口中显示实时进程输出 | Not selected(未选择) |
Display a separate console window for each real-time process 为每个实时进程显示单独的控制台窗口 | Not selected(未选择) |
Set the buffer size (lines) 设置缓冲区大小(行) | 1000(默认值) |
Log real-time process output 记录实时过程输出 | Not selected(未选择) |