由于测试一个解码器的项目,很长时间都在反复进行domain knowledge的学习,再加上自己是一个测试新手,对于测试代码撰写啥的还很是生嫩,前一阵被要求在性能测试中,最好在测试时能够计算出解码进程的CPU占用率,做为我们参考的一种性能参数。于是乎搜寻并参考了网络中的N多方法,并在项目中进行实际的实验调试,由此略了解了一点点如何计算进程CPU占用率的代码方法,在此将最终采用的方法之一记录如下:
刚开始自己从win32 API开始寻找解决策略,后来发现并没有提供直接得到CPU占用率的函数。其过程中考虑过使用NtQuerySystemInformation和GetProcAddress等,通过在一个特定时间段内计算特定进程的总时间和所有进程的总时间,它们的比值就是那个特定进程的确CPU占有率。并参考网上一个高人的改写的函数,以进程的ID作为参数,进程CPU占用率作为返回值,实时计算特定进程的CPU占用。但后来发现,在实际的解码测试时,有些值有时候好像有些问题(不敢确定o)