以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]项目启动慢的原因在BeforeLoadOuterTable?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92965)

--  作者:shenyl0211
--  发布时间:2016/11/17 12:04:00
--  [求助]项目启动慢的原因在BeforeLoadOuterTable?
经多次测试,可以采信下列项目启动时间记录:
BeforeOpenProject 开始 2016-11-17 09:11:23 \'在注册表中修改本机的系统日期和时间格式
BeforeOpenProject 结束 2016-11-17 09:11:23 \'检查项目文件是否在固定的文件夹中

BeforeConnectOuterDataSource 开始 2016-11-17 09:11:23 \'外网
BeforeConnectOuterDataSource 结束 2016-11-17 09:11:24 \'用1秒钟ping内网的IP地址,确定选择内网还是外网的IP地址

BeforeLoadInnerTable 开始 2016-11-17 09:11:25 \'4张内部表,不加载任何数据
BeforeLoadInnerTable 结束 2016-11-17 09:11:25 \'e.Filter = "[_Identify] Is Null"

BeforeLoadOuterTable 开始 2016-11-17 09:11:25 \'30张外部表,不加载任何数据,在“设置外部表”中设置过滤条件
BeforeLoadOuterTable 结束 2016-11-17 09:11:41 \'竟然用了16秒

Initialize 开始 2016-11-17 09:11:43
Initialize 结束 2016-11-17 09:11:43

AfterOpenProject开始 2016-11-17 09:11:46
……

项目发布后,用户运行项目时的更新用时:
AfterOpenProject 检查更新开始 2016-11-17 09:47:39 \'检查更新 If Syscmd.Project.Update(False,False) = False Then 
AfterOpenProject 检查更新结束 2016-11-17 09:48:02 \'竟然用了22秒

启动OpenQQ用时:
AfterOpenProject 启动OpenQQ开始 2016-11-17 09:48:05 \'OpenQQ启动
AfterOpenProject 启动openQQ结束 2016-11-17 09:48:11 \'在无法连接时用了6秒

由此可见,启动的主要时间浪费在BeforeLoadOuterTable事件(16秒)和检查更新(22秒)中。
如果不考虑检查更新所需时间,则BeforeLoadOuterTable事件用时太可怕了。

声明:已经清除了“检查发行商的证书是否吊销”的勾选状态。
[此贴子已经被作者于2016/11/17 12:06:57编辑过]

--  作者:有点青
--  发布时间:2016/11/17 12:27:00
--  
 加载表结构也是耗时的。你可以尝试连表也不加载。