关于Automation的执行效率(50分)

L

landina

Unregistered / Unconfirmed
GUEST, unregistred user!
第一次启动Com对象要发1.305秒,我可是P4的CPU,256MDDR。
第二次运行:10ms

关闭客户端后重新启动,结果和上面的一样。

为什么?
 
第一次实现Com对象的 DLL 或 EXE 文件要被掉入内存,第二次就不用了。
 
所有的对象是否对每个用户缓存一次?
如果用户多的话那会出现什么结果?
有没有办法当计算机启动的时候就缓存?
Ado的执行效率为什么没有这么慢?
 
缓存是操作系统做的,当你使用过这些数据后他就把这些数据装入缓存。
当用户再次调用时,操作系统会先到缓存中找,如果存在就从缓存装入,否则从磁盘调入。
很明显内存是比磁盘速度快得多。
如果缓存满了后面的就会冲掉前面的。用户多的话也无所谓,只不过是后面的把前面的冲掉而已。
可以在计算机启动时就把COM加载进来。
例如MS Office就是再启动项中把COM加载进来,来提高Office的启动速度。
 
COM中有引用基数,比如第一次连接的时候,系统回启动COM并把引用基数设置为1,
然后再有客户端连接,就只会把引用基数加1,不需要启动COM的,当客户端短开
连接的时候,引用基数减1,并判断基数是否为零,若为零COM自己也会释放掉
 
所以我们要在启动里放一个程序,来运行COM。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
969
SUNSTONE的Delphi笔记
S
S
回复
0
查看
650
SUNSTONE的Delphi笔记
S
S
回复
0
查看
660
SUNSTONE的Delphi笔记
S
顶部