2008-12-06 51 views
2

当我的web服务器收到请求时,它有很多依赖项来发回数据。我正在测试Web服务器中的这些依赖应用程序之一。应用程序与主Web服务器分离,只有查询以api的形式显示。如何检查C++ api的性能

我的问题是,如果我希望在多线程环境中检查这些api(使用2 quadcore处理器的C++函数),那么做什么是最好的?

我是否在单独的线程或进程中调用每个API?如果是这样,我该如何实现这样的代码?从我能弄清楚,我会重复Web服务器的功能,但是我不能找到其他更好的方法来找出单独给出的性能改进。

回答

1

这取决于您的应用是否与共享的数据混淆,如果它在并行进程中运行,因为这很可能确定速度瓶颈等待的位置。

例如,如果应用程序访问数据库或磁盘文件,您可能必须模拟查询应用程序的多个线程/进程,以了解它们彼此之间的相处程度,即它们是否必须等待每个其他同时访问共享资源。但是,如果应用程序只进行一些内部计算,全部由它自己完成,那么只要所有数据都适合内存(即不需要虚拟内存访问,例如磁盘访问),它就可以很好地扩展。然后,您可以测试一个实例的性能,并专注于优化其速度。

这也可能有助于说明您打算使用的操作系统。 Mac OS X提供了Windows和Linux不可用的性能测试和优化工具,反之亦然。