时间太长?那就先睡一会儿吧。

针对递归 NAMES.NSF 导致服务器响应慢的问题,通过对数据量差异的分析,采用 sleep 方法优化程序,避免影响 Web 用户访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近来有客户反映,在执行我的某程序时,服务器会失去响应数分钟之久,十分影响广大web用户的访问,成为名符其实的害群之马 -_-b。 

该程序主要原理是递归一下names.nsf,按照部门结构输出人员层级XML文件。这程序原来在测试环境中运行,最多几秒钟就执行完毕,现在怎么会相差这么多呢?上午研究了一下用户环境,发现了问题所在——数据量的差异。

 原来测试环境最多3级部门结构,每个层级内部门数不超过4,5个,人员最多也就几十人。而用户环境有5级部门结构,仅一级部门就将近40个,系统人员更是近千人。这样一来,程序的执行时间便呈几何级数增长,难怪用户会牢骚满天了。 

问题找到后,解决起来就容易了。因公司不允许更改names.nsf设计,无法通过建立视图的方法提高搜索速度,只好在代码中每次递归前加入sleep,强行休眠几十毫秒,这样CPU一来就有空闲时间去响应其他web用户的访问请求了。 

以下服务器设置必须更改: 

Internet协议 - Domino Web引擎 - 是否同时运行 Web 代理? 此项设置必须设置为启用,否则sleep的时间越长,另外的请求等待的时间也就越长了。另外,代理管理器中,同时运行的代理数也要更改为大于1的数字。

PS:以前总有个印象,Sleep不能用在B/S中,今天看了一下Designer帮助,没发现这个限制。莫非Domino6去掉了这个限制?老了老了,糊涂了…… 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值