MT5和速度在行动 - 页 55

 
fxsaber:

任务是迫使终端释放内存。

检查了我的假设

不释放内存,或者说不一次完全释放内存--为局部变量 释放内存--类/结构,但在终端内存中会有一个ticks的拷贝


every Sleep(1000) - 总是在第9次滑移后释放内存,即这是在终端保存的点数的人为限制,而不是在EA。

显然,没有办法--只有当开发者改变了这些数据的存储逻辑时才有可能。

 
fxsaber:
一个将杀死大多数VPS的EA 的例子。

在内存为4Gb的Atomic平板电脑上的MetaQuotes-Demo上运行--结果是。

2020.10.13 22:43:51.219 0018 (USDJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1747129
2020.10.13 22:43:51.294 0018 (USDJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 913
2020.10.13 22:43:51.995 0018 (EURUSD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1976814
2020.10.13 22:43:52.071 0018 (EURUSD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1335
2020.10.13 22:43:53.415 0018 (AUDUSD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1964168
2020.10.13 22:43:53.452 0018 (AUDUSD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1465
2020.10.13 22:43:54.554 0018 (CHFJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 1784317
2020.10.13 22:43:54.607 0018 (CHFJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1483
2020.10.13 22:43:56.546 0018 (EURNZD,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 2729847
2020.10.13 22:43:56.611 0018 (EURNZD,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1483
2020.10.13 22:43:58.199 0018 (EURJPY,H1)        CopyTicksRange(_Symbol,Ticks,COPY_TICKS_ALL,(long)inFrom*1000) = 2288326
2020.10.13 22:43:58.278 0018 (EURJPY,H1)        TerminalInfoInteger(TERMINAL_MEMORY_USED) = 1484

没有灾难--有多个标签的Opera甚至需要更长的时间来加载。

我做错了什么?

 
A100:

在内存为4Gb的Atomic平板电脑上的MetaQuotes-Demo上运行--结果是。

没有灾难--有多个标签的Opera需要更长的时间来加载。

我做错了什么?

虱子不够多。看看我日志中的数字。

 
fxsaber:

没有多少虱子。在我的日志中看数量。

一些奇怪的函数CopyTicksRange--将查询周期增加了很多倍,但没有增加刻度,也没有返回错误,查询后GetLastError 为零

 

查询周期被设定为01.06.20--结果,在重启平板电脑和终端后,结果如下(只剩下相关信息被输出)。

2020.10.14 04:03:31.203 0018 (EURGBP,H1)        Тиков=6855538, Памяти=2202
2020.10.14 04:03:35.271 0018 (EURCHF,H1)        Тиков=6385392, Памяти=2225
2020.10.14 04:03:41.031 0018 (EURAUD,H1)        Тиков=9317261, Памяти=2916
2020.10.14 04:03:44.068 0018 (CHFJPY,H1)        Тиков=6586851, Памяти=2528
2020.10.14 04:03:47.109 0018 (AUDUSD,H1)        Тиков=6214303, Памяти=2157
2020.10.14 04:03:50.634 0018 (EURUSD,H1)        Тиков=6946988, Памяти=2157
虱子的数量是可以比较的
 
我设定的周期是从01.01.20开始,Sleep(15000)。结果。
2020.10.14 04:21:30.297 0018 (EURGBP,H1)        Тиков=17354722, Памяти=6523
2020.10.14 04:21:40.916 0018 (AUDUSD,H1)        Тиков=13644101, Памяти=6525
2020.10.14 04:21:57.025 0018 (EURAUD,H1)        Тиков=21763832, Памяти=5520
2020.10.14 04:22:08.628 0018 (CHFJPY,H1)        Тиков=16150733, Памяти=4729
2020.10.14 04:22:19.463 0018 (EURUSD,H1)        Тиков=18471813, Памяти=3462
2020.10.14 04:22:29.411 0018 (EURCHF,H1)        Тиков=16227930, Памяти=2514

只是提醒一下 - 我只有4Gb的内存,包括视频内存,也就是说,只有3.9-1.7 是真正空闲的,而每个任务只需要6.5 - 一切都很慢,但它可以工作!

 

对于大规模的勾股工作,要放入更多的内存。

在2020年,当涉及到分析和研究时,4gb(价格为20欧元)远远不够好。

 

发布了第2652号测试版,具有重要意义。

  • 调试器的观察列表表达中的修正
  • 改进了编译中断(22%)。
  • 大大加速了对SymbolInfoTick的访问
  • 剖析器 报告的改进
  • 在测试器中启动基于框架的专家顾问系统时禁止交易
  • 修复了在 "一目连 "指标参数中按 "重置 "按钮时的参数重置问题

 
Renat Fatkhullin:

发布了第2652号测试版,具有重要意义。

  • 调试器的观察列表表达中的修正
  • 编译中断的情况得到改善(22%)。
  • 大大加速了对SymbolInfoTick的访问
  • 剖析器 报告的改进
  • 在测试器中启动基于框架的专家顾问系统时禁止交易
  • 修复了在 "一目连 "指标参数中按 "重置 "按钮时的参数重置问题

预先定义的变量,对于当前的勾股,可能会更好。


 
绅士们的进展...
首先阅读计算机中的内存分配,然后是如何和通过什么方式进行分配,然后是如何清理和读出和读入,并不困难。至少可以向开发商提出更合理的建议