5.性能测试
1.0.109.0版解除了单线程排队的限制, 让服务端真正处于多线程运行状态, 性能无疑能得到较大提升, 而实际测试结果比预期的还要好, 这是我们的测试结果报告:
CPU
i7 7700k (4 核 8 线程)
CPU主频
4.2G
内存
16G
OS
Windows 8.1
Web Server
IIS
客户端程序
共 10 线程不间断发送 http 请求, 功能参数随机, 总共发送 1000 个请求
服务器端例子
在线演示中的例子
服务器端C#脚本
执行 Build 打开报表、Calc执行计算、Callfunc(105)转换成 html, 这是
C#代码
耗时
处理上述 1000 个任务, 总耗时 20 秒左右
也就是说每秒能处理约 50 张报表的转换, 性能非常理想. 当然, 这是后端是采用我们静态数据的例子的结果,并且客户端和服务器都在同一台电脑上, 如果是从数据库取数, 结果肯定不会是这样.
另外,我们换成 64 位 DLL, 发现性能会更好一点,但提升不大, 最多提升10%左右.
IIS服务器还有一个改进性能、改进稳定度的配置技术:Web Garden。
请在IIS中将应用程序池配置成一个Web园(Web Garden),即允许多进程工作,以提高报表服务的并发吞吐量, 尽可能让每个登录用户都互不牵制、独立工作.
配置方法很简单,在 IIS 的“应用程序池”中,找到硕正服务所在的程序池(如果不存在就创建一个),在“高级设置”中,将最大工作进程数从默认的“1”改成多个:
例如设成 “5” ,就表示在繁忙时有可能会同时启动 5 个进程运行。
设成Web园还有一个好处: 万一某个进程崩溃,也不影响其它访问者。