我的网络服务器在收到请求时有很多依赖关系来发回数据。我正在测试Web服务器中的这些依赖项应用程序之一。应用程序与主Web服务器分离,只有查询以api暴露的形式发送。
我的问题是,如果我想在多线程环境中检查这些api(使用2个四核处理器机器的c ++函数),那么最好的做法是什么?
我是否在一个单独的线程或进程中调用每个api?如果是这样,我该如何实现这样的代码?从我可以弄清楚,我将重复Web服务器的功能,但我找不到其他更好的方法来找出该组件单独给出的性能改进。
答案 0 :(得分:1)
这取决于你的应用程序是否会使用并行进程中运行的共享数据,因为这很可能决定速度瓶颈在哪里等待。
例如,如果应用程序访问数据库或磁盘文件,您可能必须模拟查询应用程序的多个线程/进程,以便了解它们如何彼此相处,即是否必须等待彼此访问共享资源时。
但是,如果应用程序仅进行一些内部计算,全部由其自身进行,那么它可以很好地扩展,只要其所有数据都适合存储器(即,不是虚拟存储器访问,例如必要的磁盘访问)。然后,您可以测试一个实例的性能,并专注于优化其速度。
它还可能有助于说明您计划使用的操作系统。 Mac OS X提供了Windows和Linux可能没有的性能测试和优化工具,反之亦然。