关于window script component(简称wsc)的装入效率测试。
来源:互联网 发布:软件企业评估减税 编辑:程序博客网 时间:2024/05/17 09:12
背景:
MS系统将一定格式的脚本打包,编译后以Com接口对外提供服务,简称wsc。wsc可以和Com一样的调用,而本身采用文本方式编写,所以使用维护起来很方便。但是这里有个问题,由于wsc是文本方式编写,因此每次调用是都必须重新编译一道,这是肯定造成速度过慢。以Ms的水准,肯定会在编译、调用间有个缓存,但这个缓存在多大范围内起作用?我在msdn里没有找到答案,所以自己测试了一下。
对象:
测试对象:test.wsc,共320行,其中代码222行,调用方式getobject("script:c:/test.wsc"),不执行其中代码。
参考对象:已注册的adodb.recordset,调用方式createobject("adodb.recordset")。
测试方法:
同一程序 循环若干次调用对象,然后将循环秒数/循环次数,得到每次调用所耗费秒数。
测试分两种,A:调用前不清空上次对象,即内存中始终有一个实例;B:调用前清空上次对象(set obj=nothing)。
测试结果如下:
[500次]
Normal---> a:0 b:0
getWsc---> a:0 b:.014
[1000次]
Normal---> a:0 b:0
getWsc---> a:.001 b:.014
[2000次]
Normal---> a:0 b:0
getWsc---> a:.0015 b:.015
[4000次]
Normal---> a:0 b:0
getWsc---> a:.001 b:.0165
[8000次]
Normal---> a:0 b:0
getWsc---> a:.00125 b:.0165
[16000次]
Normal---> a:0 b:.0000625
getWsc---> a:.001 b:.016
[32000次]
Normal---> a:.00003125 b:.00003125
getWsc---> a:.001125 b:.015375
[64000次]
Normal---> a:.000046875 b:.000046875
getWsc---> a:.001015625 b:.014890625
数据比较:
1、com在调用时,无论A、B方式,调用时间不变
2、wsc在调用时,A方式比B方式至少快1个数量级,两种方式均趋向一个定值(B可能和wsc编译规模有关,但A的速度和缓存应该有的效率也不相配,为什么呢?)
3、A方式调用时,com比wsc快越2个数量级;B方式相差巨大,不予考虑
结论:
在同一程序中,若多次调用同一wsc,应尽量在全部调用结束前不要setnothing释放对象
附:
通过其他测试,发现不同的进程(线程未测试)中相同wsc存在和调用互相无影响,这似乎说明scrobj.dll的"缓存"只针对调用者。然而以线程方式运行的asp,不同页面间调用同一wsc效率是否会互相影响呢???尚未测试,相信这对于使用wsc的使用至关重要。
- 关于window script component(简称wsc)的装入效率测试。
- 用于生成WSC文件的Script Component Wizard
- wsc调用效率测试
- 【软件测试自动化-QTP系列讲座 7】== 自定义COM组件的实现(一)WSC篇 ==
- 关于C#数组初始化的效率测试
- 关于C#数组初始化的效率测试
- 关于C#数组初始化的效率测试
- 关于WEBAPI传输JSON的效率测试
- 测试你们的script
- 关于<Script>的全局变量
- 关于<script>的细节
- 关于LinkedList和ArrayList的执行效率的问题的区别(测试用例)
- Script component 用法
- 关于BitmapData画图方法效率的测试和对比
- 关于SQL Sever连接采用不同连接的效率测试
- 关于js中连接字符串效率的测试例子!
- Unity3d基础之组件 (Component) 和脚本 (Script) 的关系
- Script的Window对象学习加深
- SQL Server中游标加锁技术应用:获取唯一编号
- 推开云端计算的视窗——微软互联系统部门全球副总裁Robert Wahbe揭秘Azure服务平台
- -bash: /bin/rm: Argument list too long :
- vc++ string处理大全
- 1751 Highways 解题报告 2
- 关于window script component(简称wsc)的装入效率测试。
- 写程序时如何提高效率
- 找回任务栏的显示桌面
- 对 SQL Server 2005 Analysis Services 的 HTTP 访问
- 在 HTML 与 JSP 中 怎么才能在 if 条件中 跳转页面 并且显示到对应页面的 里的话
- OLAP的基本多维分析操作
- IList、ICollection、IEnumerable 之辨析
- 绑定用户控件button事件
- 数据存储到什么地方?--内存分配