我有一个实时应用程序,它通常在 2-5 毫秒内处理每个传入数据块,但有时会达到几十毫秒。我可以随心所欲地生成和重复输入数据序列,并证明峰值与特定数据块无关。
我的猜测是,因为 C++/Win32/MFC 代码也使用可变长度的 std:vectors 和 std::lists,所以它经常需要从操作系统获取内存,并且必须定期等待操作系统进行一些垃圾收集或某物。我该如何检验这个猜想?有没有办法调整内存分配以减少操作系统进程的影响?
上下文:将应用程序视为网络协议分析器,它实时收集数据并使其可供检查。数据“捕获”总是在最高优先级的线程中运行。