cinatra icon indicating copy to clipboard operation
cinatra copied to clipboard

可以尝试利用多核

Open daoluan opened this issue 6 years ago • 8 comments

daoluan avatar Oct 18 '18 03:10 daoluan

具体是什么方面?现在就i时多核多线程。

qicosmos avatar Oct 18 '18 03:10 qicosmos

image 如果利用的多核性能应该比这个高多了。

daoluan avatar Oct 19 '18 09:10 daoluan

这个问题需要研究,看看怎么进一步利用asio多核特性。

qicosmos avatar Oct 19 '18 09:10 qicosmos

嗯性能可以参考 nginx

daoluan avatar Oct 22 '18 07:10 daoluan

image

也可以参考之前写的 tinyco 思路,也是借鉴 nginx 的思想。

daoluan avatar Oct 22 '18 07:10 daoluan

这个意义应该不大。io密集型应用单线程足够,cpu密集型需要在响应请求后手动创建任务或者创建线程。nginx的思想核心在于,php等网页脚本都是单线程解析执行,速度慢,要是单线程就阻塞住了其他网页请求的响应,所以需要多线程。但cinatra因为用的是c艹,所以是偏向于io密集型,单线程足够占满几乎所有的IO。假如需要做大量的计算,可以尝试手动创建线程,然后把IO线程的资源放出来,给其他IO请求使用

fawdlstty avatar Oct 25 '18 16:10 fawdlstty

node.js就是IO密集型,IO线程处理就能在很大程度上比多线程/多进程的php的qps更高

fawdlstty avatar Oct 25 '18 16:10 fawdlstty

每个核心跑一个 asio::io_context?

看到最新代码有 https://github.com/qicosmos/cinatra/blob/master/include/cinatra/io_service_pool.hpp

micfan avatar Mar 16 '19 10:03 micfan