错误、漏洞、问题 - 页 2195 1...218821892190219121922193219421952196219721982199220022012202...3184 新评论 Rashid Umarov 2018.04.16 10:40 #21941 Artyom Trishkin:来自fxsaber的问候。 我们能看到一张图片吗--它(代码)是做什么的? fxsaber 2018.04.16 11:09 #21942 请解释为什么ArrayResize在保留任务的情况下 非常慢? 脚本 // Добавление элемента в конец произвольного массива template <typename T> void AddElement( T &Array[], const T &Value, const int Reserve = 0 ) { const int Size = ::ArraySize(Array); ::ArrayResize(Array, Size + 1, Reserve); Array[Size] = Value; } #define BENCH(A) \ { \ const ulong StartTime = GetMicrosecondCount(); \ A; \ Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \ } int Bench( const int Size, const int Reserve ) { const MqlTick NullTick = {0}; MqlTick Ticks[]; for (int i = 0; i < Size; i++) AddElement(Ticks, NullTick, Reserve); return(ArraySize(Ticks)); } void OnStart() { BENCH(Bench(1 e7, 1 e5)); // 100 раз выделяется память BENCH(Bench(1 e7, 1 e6)); // 10 раз выделяется память BENCH(Bench(1 e7, 1 e7)); // 1 раз выделяется память } 结果 Time[Bench(1 e7,1 e5)] = 38199494 Time[Bench(1 e7,1 e6)] = 3867983 Time[Bench(1 e7,1 e7)] = 479303 100次内存分配(5 Mb到500 Mb)需要38秒。这是否正常? 实际应用是在自定义字符中,当你想在导入前准备一个勾选历史。假设,在本地存储中有一些含有tick数据的CSV文件,你需要把它们做成一个MqlTick-array。如何以最佳方式进行?不可能事先计算出这些文件中的刻度线的数量。 fxsaber 2018.04.16 11:14 #21943 Rashid Umarov:我们能看到一张图片吗--它(代码)是做什么的? 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 Dmytro Zelenskyy, 2018.04.14 11:00 Andrey Khatimlianskii 2018.04.16 12:23 #21944 fxsaber:不可能事先计算出这些文件中的刻度线数量。将文件大小 除以一个勾的大致大小? fxsaber 2018.04.16 12:58 #21945 Andrey Khatimlianskii:将文件大小除以一个勾的大致大小?不幸的是,我不知道文件的大小--我是从ZIP中解压的CSV。 Aleksey Vyazmikin 2018.04.16 14:18 #21946 Rashid Umarov:我们能不能看一下图片--它是做什么的?事实证明,在选定的时间段内进行截图是很困难的--也许有一个适当的宽度定义方案来捕捉两个日期范围内的条形图? Alexey Viktorov 2018.04.16 15:43 #21947 Aleksey Vyazmikin:在选定的时间段内进行截图已被证明是困难的--是否有一个适当的宽度定义方案来捕获两个日期范围内的条形图?困难是什么?我在一个脚本中用不同的尺度做了2张截图,这样截图显示了从指定日期开始的30个柱状。 Andrey Khatimlianskii 2018.04.16 15:49 #21948 fxsaber:不幸的是,我不知道文件的大小--我从ZIP中解压CSV。他们从ZIP到哪里去?变成一个数组?对一个字符串?他们也有一个尺寸/长度。 Aleksey Vyazmikin 2018.04.16 16:05 #21949 Alexey Viktorov:有什么困难?这里有一个脚本,用不同的比例做了2张截图,这样屏幕上就有了从指定日期开始的30个条形。 把变焦放到零,即使现在你也可以看到,在第二张截图中,酒吧已经很紧了,与第一张不同。 还有,30条是什么,让我们把它变成600条吧! fxsaber 2018.04.16 16:07 #21950 Andrey Khatimlianskii:他们从ZIP到哪里去?变成一个数组?对一个字符串?他们也有一个尺寸/长度。然后,我将不得不解压所有的东西,并在内存中保留数百兆字节的未打包的东西。 或者通过将字符串的数量相加来解包(字符串-勾)。节省内存。然后再次解压,但要进行解析。 1...218821892190219121922193219421952196219721982199220022012202...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
来自fxsaber的问候。
我们能看到一张图片吗--它(代码)是做什么的?
请解释为什么ArrayResize在保留任务的情况下 非常慢?
脚本
结果
100次内存分配(5 Mb到500 Mb)需要38秒。这是否正常?
实际应用是在自定义字符中,当你想在导入前准备一个勾选历史。假设,在本地存储中有一些含有tick数据的CSV文件,你需要把它们做成一个MqlTick-array。如何以最佳方式进行?不可能事先计算出这些文件中的刻度线的数量。
我们能看到一张图片吗--它(代码)是做什么的?
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
Dmytro Zelenskyy, 2018.04.14 11:00
不可能事先计算出这些文件中的刻度线数量。
将文件大小 除以一个勾的大致大小?
将文件大小除以一个勾的大致大小?
不幸的是,我不知道文件的大小--我是从ZIP中解压的CSV。
我们能不能看一下图片--它是做什么的?
事实证明,在选定的时间段内进行截图是很困难的--也许有一个适当的宽度定义方案来捕捉两个日期范围内的条形图?
在选定的时间段内进行截图已被证明是困难的--是否有一个适当的宽度定义方案来捕获两个日期范围内的条形图?
困难是什么?我在一个脚本中用不同的尺度做了2张截图,这样截图显示了从指定日期开始的30个柱状。
不幸的是,我不知道文件的大小--我从ZIP中解压CSV。
他们从ZIP到哪里去?变成一个数组?对一个字符串?他们也有一个尺寸/长度。
有什么困难?这里有一个脚本,用不同的比例做了2张截图,这样屏幕上就有了从指定日期开始的30个条形。
把变焦放到零,即使现在你也可以看到,在第二张截图中,酒吧已经很紧了,与第一张不同。
还有,30条是什么,让我们把它变成600条吧!他们从ZIP到哪里去?变成一个数组?对一个字符串?他们也有一个尺寸/长度。
然后,我将不得不解压所有的东西,并在内存中保留数百兆字节的未打包的东西。
或者通过将字符串的数量相加来解包(字符串-勾)。节省内存。然后再次解压,但要进行解析。