错误、漏洞、问题 - 页 1627

 
Alexey Navoykov:
我无法想象这样的项目在MQL中会有多大的建树。而在完整的IDE中,有不同的编译模式。也许你指的是发布版本,而大多数时候,调试就足够了。但在MT,你没有太多的时间来等待。
加上那里使用的是预编译文件,所以后续的构建显然会更快。

在优点方面,我用通常的gedit写,调试控制台进入它,调试直接在gdb中完成,链接和构建也从gcc控制台完成,从IDE有时使用QtCreator,但只有在我需要写或调试GUI的时候:)

我是在不到一年前做出这个决定的,当时我意识到,加载一个没有额外功能的纯文本编辑器来修正或写东西,比加载一个沉重的IDE要容易得多。

 

Alexey Navoykov:
Насчёт ВСЕХ кодов - вы не погорячились? Откуда такая уверенность? Вы их все пробовали?

尝试了很多...

好的,当我在电脑前时,我会给你一些代码来播放它。但我已经被你关于在薄弱硬件上的几十毫秒的故事弄糊涂了。我们说的是同一件事吗?脚本文件是.mq5吗?那你有什么CPU呢?

等我到了电脑前,我将澄清这些数据。
 
Slawa:
有什么可以回来的?
由于某种原因,在故事上的调试会拾起完整的可视化内容。如此真实的解释。我将另外使用__DEBUG__。文档中对可视化调试没有多说。
 
与本主题无关的评论已被移至"格子间的帮助"。
 

我在kodobase中搜索,直到找到一些MT5的大项目。 但令我惊讶的是,专家顾问和指标部分实际上充满了同一个人的手工艺品。 而且几年来,他每天都会推出几个这样的项目我不知道他为什么这么热衷于做这个,为了什么......也许MQ为此付给他钱,我不知道......当然,一切都在按一个顺序准备,但我个人会厌倦只做描述和截图)。

专家顾问的重量约为150-200kb,但首先,代码是相当模糊的,加上有很多重复的片段。 好吧,这是我的估计。 按体积计算,它将花费我几倍的时间。其次,代码本身很简单,没有虚拟函数、模板,也没有动态对象和指针。也就是说,事实上所有的代码都可以内联。 它的编译速度相当快,在600-700毫秒左右。 嗯,一般来说,你需要找到一个真正大量的、相当复杂的例子。 而在我的开发中,我只在新的编译器下完成了那个项目,所有其他的项目我都在旧的编译器下使用,并花时间对它们进行修改,鉴于目前的情况,我认为没有必要。

 
Alexey Navoykov:

...

在我的开发项目中,我只完成了新编译器的项目,其他的都是用旧的,要花时间去调整,鉴于目前的情况,我觉得不现实。

当前版本:图形界面九:"进度条 "和 "线形图 "元素(第二章)

 
Anatoli Kazharski:

到目前为止的最新版本:图形界面九:"进度指示器 "和 "线形图 "元素(第二章)

第一个测试的专家顾问TestLibrary01在6.5秒内编译完成。然而,我们仍然要估计这个专家顾问实际使用的代码量。 此外,如果我们把它与旧版本的编译速度相比,"智能 "这个词会显得有点滑稽。 它在那里是瞬间完成的。 如果有人想熟悉它,我附上1159版本的编译器。 当然,请重命名该文件。

也就是说,事实上我们可以得出以下结论:编译时间当然可能根据代码大小和复杂程度而变化很多,但有一点是不可改变的--在新的编译器中比旧的要慢得多。 同时,我检查过,软件速度没有明显的提高。 如果有人想证明相反的情况,请继续。

附加的文件:
 
Alexey Navoykov:

好吧,第一个测试专家顾问TestLibrary01为我编译了6.5秒。然而,我们仍然要估计这个专家顾问实际使用的代码量。 此外,如果我们把它与旧版本的编译速度相比,"智能 "这个词会显得有点滑稽。 它在那里是瞬间完成的。 如果有人想熟悉它,我附上1159版本的编译器。 当然,请重命名该文件。

那就是,事实上,可以得出以下结论:编译时间当然可能因代码的大小和复杂程度而有许多不同。 但有一点是不变的:在旧的编译器中比新的编译器快得多。 我检查过,软件速度没有相当大的提高。 如果有人想证明相反的情况,请继续。

当然,MetaTrader 5 中最复杂的项目 需要太长的时间来编译。它甚至可能需要长达11 秒。在MetaTrader4 中的相同版本,速度高达25 倍。

例如,同一个项目。

MetaTrader5

0 error(s), 0 warning(s), compile time: 11054 msec              1       1

//---

MetaTrader4

0 error(s), 0 warning(s), compile time: 434 msec                1       1

//---

到目前为止,还不清楚它与什么有关。你可以尝试准备测试材料,并将其发送给Servicedesk进行检查。如果你不想展示你的项目的代码,你可以使用本系列文章中的代码作为例子。

 
Anatoli Kazharski:

当然,我在MetaTrader 5 中最复杂的项目也需要很长的时间来编译。它甚至需要长达11 秒的时间。完全相同的版本,但在MetaTrader 4 中可以快达25 倍。

例如,同一个项目。

MetaTrader5

//---

MetaTrader4

//---

到目前为止,还不清楚它与什么有关。你可以尝试准备测试材料,并将其发送给Servicedesk进行检查。如果你不想展示你的项目的代码,你可以使用本系列文章中的代码作为例子。

我有一个推测:因为MT4是32位的,所以它没有变得 "完全优化"。 据我所知,这个编译器错误的优化被宣布为应该改善64位环境下的工作。 顺便说一下,我应该检查32位版本的MT5。 也许它一切正常。但我没有这样的机会。

如果你有32bit版本的metaeditor for 5,请分享它。

 
Anatoli Kazharski:

当然,我在MetaTrader 5 中最复杂的项目也需要很长的时间来编译。它甚至需要长达11 秒的时间。完全相同的版本,但在MetaTrader 4 中可以快达25 倍。

例如,同一个项目。

MetaTrader5

//---

MetaTrader4

//---

到目前为止,还不清楚它与什么有关。你可以尝试准备测试材料,并将其发送给Servicedesk进行检查。如果你不想展示你的项目的代码,你可以使用本系列文章中的代码作为例子。

这就是代码优化

如果你在metaeditor.ini的[专家]字段中写上OPTIMIZE=0,你的编译速度会像4一样。我有一些项目在20秒内完成编译,有些则进入了无限的优化循环:)