以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  谁能解释一下,逻辑判断语句写成嵌套形式后运行效率下降?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=69009)

--  作者:uranusmoon
--  发布时间:2014/8/20 15:59:19
--  谁能解释一下,逻辑判断语句写成嵌套形式后运行效率下降?
请问下面两种写法,那种执行速度快些?
嵌套形式:
if 条件A then begin
if 条件B then begin
……
end
if 条件C then begin
……
end
end
分开写:
if 条件A and 条件B then begin
……
end
if 条件A and 条件C then begin
……
end

--  作者:fly
--  发布时间:2014/8/20 16:17:36
--  

执行速度,差别不大


--  作者:uranusmoon
--  发布时间:2014/8/20 16:33:32
--  
别说差别不大,因为在每个k线上都要执行,累计起来的运行时间差可能很可观。我的实际情况是,改成嵌套形式后与改之前的运行效果差别挺大,原来信号很及时,现在老延迟或漏掉。能否从原理上解释一下?
--  作者:fly
--  发布时间:2014/8/20 17:08:10
--  

你可以使用第二种方式,这样的代码量少

 

两种写法,原理上,运算级别是一样的数量级的.这个知识不好普及,不好意思


--  作者:uranusmoon
--  发布时间:2014/8/20 19:29:44
--  
之前确实没看到这方面的解释,一般也没觉得是个问题,但是1秒轮循下要求代码执行效率要高,虽然运算级别的数量级一样,但是差几倍也是可观的。如果程序运行一遍需要整1秒,则1秒轮循下没问题,而如果运行一遍增加到3秒,则1秒轮循很容易漏信号。能否通俗解释一下呢?
--  作者:qwer123
--  发布时间:2014/8/21 8:35:40
--  
不会,一般尽可能使用嵌套方法,这样可以减小运算量。