2008-12-06 69 views
2

當我的web服務器收到請求時,它有很多依賴項來發回數據。我正在測試Web服務器中的這些依賴應用程序之一。應用程序與主Web服務器分離,只有查詢以api的形式顯示。如何檢查C++ api的性能

我的問題是,如果我希望在多線程環境中檢查這些api(使用2 quadcore處理器的C++函數),那麼做什麼是最好的?

我是否在單獨的線程或進程中調用每個API?如果是這樣,我該如何實現這樣的代碼?從我能弄清楚,我會重複Web服務器的功能,但是我不能找到其他更好的方法來找出單獨給出的性能改進。

回答

1

這取決於您的應用是否與共享的數據混淆,如果它在並行進程中運行,因爲這很可能確定速度瓶頸等待的位置。

例如,如果應用程序訪問數據庫或磁盤文件,您可能必須模擬查詢應用程序的多個線程/進程,以瞭解它們彼此之間的相處程度,即它們是否必須等待每個其他同時訪問共享資源。但是,如果應用程序只進行一些內部計算,全部由它自己完成,那麼只要所有數據都適合內存(即不需要虛擬內存訪問,例如磁盤訪問),它就可以很好地擴展。然後,您可以測試一個實例的性能,並專注於優化其速度。

這也可能有助於說明您打算使用的操作系統。 Mac OS X提供了Windows和Linux不可用的性能測試和優化工具,反之亦然。