功能受限的真正动态Include实现猜想

    如今动态include文件都是用ExecuteGlobal来实现,如果目标文件有太多ASP标签,那么速度会下降200%,这几天做了个测试,用ASP自带的<!--#include file="..."-->,速度均衡为0.01563秒,而解析ASP文件,并用ExecuteGlobal输出,速度均衡为0.04688秒,这几毫秒的速度在测试时没什么问题,实际运用中,并发100个请求,#include的速度就是1秒,ExecuteGlobal就是4秒,当然这些都是理想速度,实际会更慢,因此就有实现真正动态include的猜想,猜想的依据就是Server.Execute和Server.Transfer,这两个方法调用目标ASP文件,是另启过程,与当过程无关,因此就有个传参的瓶颈,跨过程传参,最好的办法就是Session,Session比Application的限制要小的多,它可以存储自定义的类,而且猜想其不受Free Threaded的限制,因此建立一个统一的超级类,是实现动态Include的基础,“超级类”看起来挺唬人,其实只要封装Scripting.Dictionary字典就可以,WEB的常用变量声明为超级类的公共变量,变动的变量用字典存储,例如:

index.asp

hello.asp

运行结果均衡在0.01563秒,与直接#include速度一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值