使用CppCMS进行后期请求的性能

时间:2014-11-19 16:38:36

标签: performance xmlhttprequest cppcms

我们正在使用CppCMS服务器,当发布消息达到某个KB的某个大小时,它对后发请求的性能非常低。对于初学者教程的最小服务器示例已经发生了这种情况,稍作修改:

#include <cppcms/application.h>  
#include <cppcms/applications_pool.h>  
#include <cppcms/service.h>  
#include <cppcms/http_request.h>  
#include <cppcms/http_response.h>  
#include <cppcms/mount_point.h>  
#include <booster/intrusive_ptr.h>

#include <utility>
#include <iostream>  
#include <boost/timer.hpp>

class hello 
  : public cppcms::application 
{  
  public:  
    hello(cppcms::service &srv) :  
      cppcms::application(srv), counter(0) {}  
    virtual void main(std::string url);  
    boost::timer my_timer;
    int counter;
};

void hello::main(std::string url)  
{  
    response().out() << "Hello from asynchron CppCMS after " << my_timer.elapsed() << "s\n";
    std::cout << "[" << url.size() << "] = " << url.substr(0, 50) << '\n';
} 

int main(int argc,char ** argv)  
{  
    try {  
        cppcms::service srv(argc,argv); 
    booster::intrusive_ptr<hello> p= new hello(srv);
    srv.applications_pool().mount( p, cppcms::mount_point("(.*)") ); 
    srv.run();  
    }  
    catch(std::exception const &e) {  
    std::cerr << e.what() << std::endl;  
    } 
    return 0;
}    

奇怪的是,服务器在主函数中只花了几毫秒,但在两次调用之间只花了一两秒钟。

  1. CppCMS在这个时候做了什么?
  2. 更重要的是,如何缩短这段时间?
  3. 这是线程池的问题吗?
  4. 对帖子消息有一些昂贵的处理吗? (我读过有关压缩的内容)可以关闭或加速吗?
  5. 使用8到10kB之间的XML文件的9个帖子请求需要9秒,甚至不需要处理请求。对于node.js服务器,相同的请求不到半秒。我尝试了不同的配置,并阅读了很多dox和帖子,找不到解释这些长时间空闲时间的东西。欢迎任何帮助。

    提前谢谢你, 彼得

0 个答案:

没有答案