向#define专家提问 - 页 9 123456789101112 新评论 Roman 2020.11.03 00:04 #81 Alexandr Andreev:这并不总是有效。 这不是正确的测试,因为循环体是不同的。 第二个机构有更多的指示cnt-- 所以这不是我正确的测试。 对于PI,我认为它更正确。 Alexandr Andreev 2020.11.03 00:07 #82 Roman:这不是正确的测试,因为循环体是不同的。 第二个机构也有指示cnt-- 这不是我正确的测试。 对于PI,我认为它更正确。 这只是生活的方式,测试在使用和常识方面是正确的。在任何我们改变数组本身大小的循环中,都会有完全相同的代码。这个例子是正确的。 但是,PI就在那里,而且结果也不是明显的单向,请看一下。 Roman 2020.11.03 00:22 #83 Alexandr Andreev:这正是生活的方式,一个在用法和常识上不正确的测试。 在任何我们改变数组本身大小的循环中,都会有完全相同的代码。这个例子是正确的。但PI是存在的,而且结果也不是明显地朝一个方向。 但它怎么会是正确的呢? 如果在循环体中有更多的指令,在迭代过程中就会执行更多的代码,一个额外的指令会被递增。,这就增加了执行时间。这是符合逻辑的。 而当这些机构是相同的时候,评估对循环条件的引用已经很安全了。 Alexandr Andreev 2020.11.03 00:30 #84 Roman:它是如何正确的? 如果在循环体中有更多的指令,在迭代过程中就会执行更多的代码,一个额外的指令会被递增。,这就增加了执行时间。这是符合逻辑的。 而当机构相同时,我们已经可以安全地估计到循环条件的调用。 )))) 这不是所有的教条都是正确的。你在运行之间(运行更频繁,编译更多的运行--单程),所以单程的计算差异要大于你的计算值。差异是由系统的当前任务造成的。即被检查的价值份额太小,为了增加它,你必须增加身体中这些功能的数量....。并采取最便宜的操作。而这就是乘法!......我还没有找到另一个人。例如,我的例子使用了一次除法--这比π的计算方式要少很多倍,在那里还使用了类型重影(相当昂贵的过程)。 Roman 2020.11.03 00:37 #85 Alexandr Andreev:))))这不是所有教规都正确的。你在运行之间(做更多的运行,做编译更多的运行--单向),所以你在运行之间的计算差异比宣称的价值要大。差异是由系统的当前任务造成的。即被检查的价值份额太小,为了增加它,你必须增加身体中这些功能的数量....。并采取最便宜的操作。而这就是乘法!......我还没有找到另一个人。例如,我的例子使用了一个除法--这比π的计算方式要少很多倍,在那里还使用了类型重影(相当昂贵的过程)。 再一次。被测试的不是循环体,而是循环条件。 循环的主体必须是相同的,以衡量条件是否得到满足。 否则,由于各机构执行的时间不同,测量时间也会不同。 这就是我们在这种情况下得到的结果,因为有一条额外的指令cnt------。 Alexandr Andreev 2020.11.03 00:38 #86 void OnStart() { int mas[]; int mas1[300]; int mas2[300]; int mas3[300]; int mas4[300]; int mas5[300]; int mas6[300]; int z=300; int size=1000000000; ArrayResize(mas,size); int r=0; int r1=0; int r2=0; int random; ulong max=100; int t=0; int tr=0; MathSrand(10); int num_steps=ArraySize(mas); double x, pi, sum=0.0; double step = 1.0/(double)num_steps; int v=size; ulong t1 = GetMicrosecondCount(); // for(ulong z=0; z<max; z++) { for(int i=0; i<ArraySize(mas); i++) { r2+=ArraySize(mas); r2<<=3; } } ulong t2=GetMicrosecondCount(); //for(ulong z=0; z<max; z++) int sizem=ArraySize(mas); { for(int i=0; i<sizem; i++) { r2+=sizem; r2<<=3; } } ulong t3=GetMicrosecondCount(); Print(t2-t1," ",t3-t2," ",r2," ",r1); // Templ(); } 一般来说,事实证明,在宽恕和二进制移位之间交替进行(这是最便宜的操作之一)也会影响到.... 的计算。没有任何区别,这就是裁决。 Alexandr Andreev 2020.11.03 00:45 #87 Roman:再一次。被测试的不是循环体,而是循环条件。 循环体必须是相同的,以便测量是否满足条件。 否则,测量时间将是不同的,因为各机构执行的时间不同。 在这种情况下,我们得到了,因为有一个额外的指令cnt -- 事实上,我的文字正是关于与π的方式 Алексей Тарабанов 2020.11.03 00:51 #88 我甚至不敢问#define的问题 Roman 2020.11.03 00:57 #89 Алексей Тарабанов: 我甚至不敢问#define的问题 让我们更多地讨论一下定义。 根据我的理解,它不会给可执行文件带来运行时的提升。 Алексей Тарабанов 2020.11.03 01:10 #90 Roman:让我们更多地讨论一下定义。 据我所知,它在可执行文件中没有给出一个执行增量。 好的。首先是定义,然后是可执行文件,然后是可执行文件的执行。 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这并不总是有效。
这不是正确的测试,因为循环体是不同的。
第二个机构有更多的指示cnt--
所以这不是我正确的测试。
对于PI,我认为它更正确。
这不是正确的测试,因为循环体是不同的。
第二个机构也有指示cnt--
这不是我正确的测试。
对于PI,我认为它更正确。
这只是生活的方式,测试在使用和常识方面是正确的。在任何我们改变数组本身大小的循环中,都会有完全相同的代码。这个例子是正确的。
但是,PI就在那里,而且结果也不是明显的单向,请看一下。
这正是生活的方式,一个在用法和常识上不正确的测试。
在任何我们改变数组本身大小的循环中,都会有完全相同的代码。这个例子是正确的。
但PI是存在的,而且结果也不是明显地朝一个方向。
但它怎么会是正确的呢?
如果在循环体中有更多的指令,在迭代过程中就会执行更多的代码,一个额外的指令会被递增。
,这就增加了执行时间。这是符合逻辑的。
而当这些机构是相同的时候,评估对循环条件的引用已经很安全了。
它是如何正确的?
如果在循环体中有更多的指令,在迭代过程中就会执行更多的代码,一个额外的指令会被递增。
,这就增加了执行时间。这是符合逻辑的。
而当机构相同时,我们已经可以安全地估计到循环条件的调用。
))))
这不是所有的教条都是正确的。你在运行之间(运行更频繁,编译更多的运行--单程),所以单程的计算差异要大于你的计算值。差异是由系统的当前任务造成的。即被检查的价值份额太小,为了增加它,你必须增加身体中这些功能的数量....。并采取最便宜的操作。而这就是乘法!......我还没有找到另一个人。例如,我的例子使用了一次除法--这比π的计算方式要少很多倍,在那里还使用了类型重影(相当昂贵的过程)。
))))
这不是所有教规都正确的。你在运行之间(做更多的运行,做编译更多的运行--单向),所以你在运行之间的计算差异比宣称的价值要大。差异是由系统的当前任务造成的。即被检查的价值份额太小,为了增加它,你必须增加身体中这些功能的数量....。并采取最便宜的操作。而这就是乘法!......我还没有找到另一个人。例如,我的例子使用了一个除法--这比π的计算方式要少很多倍,在那里还使用了类型重影(相当昂贵的过程)。
再一次。被测试的不是循环体,而是循环条件。
循环的主体必须是相同的,以衡量条件是否得到满足。
否则,由于各机构执行的时间不同,测量时间也会不同。
这就是我们在这种情况下得到的结果,因为有一条额外的指令cnt------。
一般来说,事实证明,在宽恕和二进制移位之间交替进行(这是最便宜的操作之一)也会影响到.... 的计算。没有任何区别,这就是裁决。
再一次。被测试的不是循环体,而是循环条件。
循环体必须是相同的,以便测量是否满足条件。
否则,测量时间将是不同的,因为各机构执行的时间不同。
在这种情况下,我们得到了,因为有一个额外的指令cnt --
事实上,我的文字正是关于与π的方式
我甚至不敢问#define的问题
让我们更多地讨论一下定义。
根据我的理解,它不会给可执行文件带来运行时的提升。
让我们更多地讨论一下定义。
据我所知,它在可执行文件中没有给出一个执行增量。
好的。首先是定义,然后是可执行文件,然后是可执行文件的执行。