IIS vs boost asio作为server的性能比较
最近将原先单机应用改造文CS架构的应用,中间有走弯路竟然直接将大数据(几十MB的文件)直接作为LONG BLOB,
存到mysql中,结果性能低下,随即该回到文件存储,数据库中放路径。
一、方案
由于不想共享文件夹的方式在服务器和客户端之间传递文件,有下列两个方案
方案A: IIS作为server提供HTTP下载服务, 客户端为C++的boost asio客户端
方案B:用boos asio写的server提供TCP下载服务,客户端为 C++的boost asio客户端
542层CT图像 277M数据
A方案 下载数据需要8566ms
B方案需要1576ms
二、并发情况
A方案8个客户端并行下载277M数据:
平均27132ms
B方案8个客户端并行下载277M数据:
平均6429ms
结论:
1. B方案相对于A方案有3~5倍的性能提升;
2. TCP的性能较HTTP要好,但是差异应该不会太大;
3. Boos asio更接近底层socket通讯,相比IIS C#的性能有很大的优势。