低硬件仿真,可进行性能分析

问题描述

我需要优化正在使用的应用程序,而我的开发机上无法获得可靠的性能分析数据。该应用程序应在QNX上的低端ARM硬件上运行,但出于后勤原因,我无权访问用于分析的最终硬件。

我曾尝试在开发机器上进行性能分析,但是您可以想象,一切都如此之快,以至于我无法指出速度较慢的部分。我创建了一个Linux虚拟机,减少了内存和CPU核心数量,但是与最终硬件相比,它们仍然太快了。

是否可以降低虚拟机中的CPU时钟速度/内存速度/磁盘速度以模拟性能低下的硬件,或者是否有其他方法可以在开发计算机上获取相关的性能分析数据?

考虑到该应用程序正在处理几GB的数据,我认为磁盘访问是一个主要瓶颈,限制磁盘速度可能会有所帮助

我可以使用在真实或虚拟机上的Windows / Linux / MacOS上运行的 any (在大多数开放源代码和市售产品中)工具/方法。

解决方法

URL描述了如何限制VirtualBox映像上的磁盘带宽。您可以在Virtualbox上运行Linux VM,并使用此方法限制磁盘访问速度,使用来自this答案的建议关闭磁盘缓存并配置您的应用程序。或者,您可以下载QNX SDP,该文件带有可使用VMWare / Virtualbox / qemu

运行的预构建x86_64虚拟机映像选项。

我以前在armv7和x86_64上使用QNX的经验表明,当处理从闪存中读取的许多大文件时,devb-sdmmc驱动程序可能是瓶颈。 devb-sdmmc和io-blk通常需要使用适当的缓存,块,预读大小和其他参数对驱动程序进行微调,以帮助提高磁盘访问性能。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...