MT5 RAM内存贪婪,读/写大文件的问题 - 页 7 12345678 新评论 Aleksey Vyazmikin 2018.07.22 13:31 #61 结果发现,我的终端在没有脚本的情况下占用了820MB,所以二进制文件占用了180MB,考虑到有两个填充阵列,这显然是可以的。 Renat Fatkhullin 2018.07.22 16:04 #62 这个话题的措辞不大正确。内存不是被终端吃掉的,而是被一个特定的程序和一个特定的执行方式吃掉的。在这种情况下,MQL程序对数据的存储是不正确的,而且效率很低。 Maxim Dmitrievsky 2018.07.22 16:22 #63 Aleksey Vyazmikin:你能告诉我该如何解决吗? 好吧,你先读数组是可以的,但读完后,你必须关闭文件。 然后以同样的方式写作,而不是通过你的图书馆。 Aleksey Vyazmikin 2018.07.22 17:18 #64 Renat Fatkhullin: 这个话题的表述不大正确。内存不是被终端吃掉的,而是被一个特定的程序和一个特定的执行方式吃掉的。在这种情况下,MQL程序对数据的存储是不正确的,而且效率很低。该主题是在问题出现时提出的,当时对原因还没有最终的认识。我的出发点是,我有一个由MQ员工参与创建的类,这意味着我没有理由怀疑其正确性。 如果程序没有正确有效地存储数据,你能告诉我如何正确有效地存储数据吗?我应该在类中做什么改变以使其消耗更少的内存? 总的来说,如果终端能提供类似的类来处理基于CSV的表格就更好了。 Aleksey Vyazmikin 2018.07.22 17:20 #65 Maxim Dmitrievsky:先读数组是可以的,但读完文件后必须关闭它 并以同样的方式写作,而不是通过你的图书馆。我将关闭它,谢谢你。 我必须用两种变体来写,因为CSV格式可以帮助我真正看清数组中的情况--唉,我也会犯错,因此我宁愿在调试代码时重新检查excel中的计算结果,也不愿意以后做出错误的结论。 Roffild 2018.07.22 20:59 #66 Vladimir:当解决在不同程序中创建的、具有任意大小的.csvs 提取到内存中的问题时,你从文档中了解到第三个参数对这种情况有什么作用? 欢迎提出更好的、非二进制的改变,它比二进制搜索更能提高内存重新分配的速度(减少ArrayResize的调用次数)...为初学者提供免费课程。 第三个参数ArrayResize指定了数组的实际大小,是这个数字的倍数。 ArrayResize(arr, 5, 1000) - 将在内存中占用1000个元素。 ArrayResize(arr, 1005, 1000) - 将占用内存中的2000个元素。 这就是为什么没有永久的内存分配。 Roffild 2018.07.22 21:07 #67 Aleksey Vyazmikin:该专题是在问题出现时制定的,当时对原因还没有明确的认识。我的假设是,我有一个由MQ员工输入创建的类,这意味着我没有理由怀疑它是否正常工作。 如果程序没有正确有效地存储数据,你能告诉我如何正确有效地存储数据吗?我应该在类中做什么改变以使其消耗更少的内存? 总的来说,如果终端能提供这样一个类来处理基于CSV的表格,那就非常好了。问题不在这个班级,而在使用这个班级。 事实上,从CSV中读取数据已经在FileOpen级别用标志FILE_CSV 实现了。 你不需要为此单独设立一个类别。 Aleksey Vyazmikin 2018.07.22 23:07 #68 Roffild:为初学者提供的免费课程。 第三个参数ArrayResize将数组的实际大小设置为这个数字的倍数。 ArrayResize(arr, 5, 1000) - 将占用内存中的1000个元素。 ArrayResize(arr, 1005, 1000) - 将占用2000个元素的内存。 这就是为什么没有永久的内存分配。弗拉基米尔不像你,他设法分析了代码并找到了加速的方法。而你在这里把自己定位为一个不能处理别人的代码的理论家。所有这些结论--它们给你带来了什么,也许你能证明增加额外的参数会加快代码速度或减少内存消耗? 罗费尔德。问题不在班级,而是在如何使用班级。 事实上,从CSV中读取数据已经在FileOpen级别用标志FILE_CSV 实现了。 你不需要为此单独设立一个类别。 如果你不明白它的用途,你为什么要为别人做决定?我是说你必须为人们提供方便,这就是编写课程的目的。 Roffild 2018.07.22 23:34 #69 Aleksey Vyazmikin:弗拉基米尔,不像你,能够分析代码并找到一种方法来加速它。而你在这里把自己定位为一个不能与其他人的代码合作的理论家。所有这些结论--它们给你带来了什么,也许你能证明添加额外的参数会加快工作速度或减少内存消耗?其实弗拉基米尔不可能通过编辑来使这门课更快。这个类是由一个 "MQ员工 "创建的,一个没有阅读文档的用户设法改进了这个类? 阿列克谢-维亚兹米 金。 如果你不明白它的用途,你为什么要为别人做决定?我说,你必须为人们提供方便,这就是编写课程的目的。 那么为了使用标准函数,你必须用类来包装它们吗? 也许你应该阅读FILE_CSV 的文档,而不是使用一整个单独的类? 这里已经有了其他现成的解决方案,但都被忽略了。 我的写到CSV的解决方案,对列数没有限制,就在我的库里。即使是OOP的原则(我想你对这种编程方法并不熟悉)也被尊重。但我不会推荐它。 正确的解决方案不太可能在这里免费出现... Aleksey Vyazmikin 2018.07.22 23:42 #70 Roffild:实际上,弗拉基米尔不可能用他的编辑来加快课堂进度。这个类是由一个 "MQ员工 "创建的,而这个用户没有阅读文档,却设法改进了这个类?你是否检查过,没有发现加速现象?或者你是说我在这里误导大家? 罗费尔德。那么,为了使用标准函数,你必须把它们包装成类吗? 也许你应该阅读关于FILE_CSV 的文档,而不是使用整个独立的类? 这里已经有了其他现成的解决方案,但都被忽略了。 我的写到CSV的解决方案,对列数没有限制,就在我的库里。即使是OOP的原则(我想你对这种编程方法并不熟悉)也被尊重。但我不会推荐它。 这里不太可能出现免费的解决方案...... 你仔细阅读了这个主题吗?你看到我以函数的形式对现成的解决方案的回答了吗?你有其他解决办法吗?当然,我不知道什么是OOP,这个话题的细心读者会马上注意到它...... 关于盈利能力/免费--这很荒谬,我只是表明付费的解决方案并不意味着比免费的更好,而你又在谈论钱...... 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我该如何解决吗?
好吧,你先读数组是可以的,但读完后,你必须关闭文件。
然后以同样的方式写作,而不是通过你的图书馆。
这个话题的表述不大正确。
该主题是在问题出现时提出的,当时对原因还没有最终的认识。我的出发点是,我有一个由MQ员工参与创建的类,这意味着我没有理由怀疑其正确性。
如果程序没有正确有效地存储数据,你能告诉我如何正确有效地存储数据吗?我应该在类中做什么改变以使其消耗更少的内存?
总的来说,如果终端能提供类似的类来处理基于CSV的表格就更好了。
先读数组是可以的,但读完文件后必须关闭它
并以同样的方式写作,而不是通过你的图书馆。
我将关闭它,谢谢你。
我必须用两种变体来写,因为CSV格式可以帮助我真正看清数组中的情况--唉,我也会犯错,因此我宁愿在调试代码时重新检查excel中的计算结果,也不愿意以后做出错误的结论。
当解决在不同程序中创建的、具有任意大小的.csvs 提取到内存中的问题时,你从文档中了解到第三个参数对这种情况有什么作用?
欢迎提出更好的、非二进制的改变,它比二进制搜索更能提高内存重新分配的速度(减少ArrayResize的调用次数)...
为初学者提供免费课程。
第三个参数ArrayResize指定了数组的实际大小,是这个数字的倍数。
ArrayResize(arr, 5, 1000) - 将在内存中占用1000个元素。
ArrayResize(arr, 1005, 1000) - 将占用内存中的2000个元素。
这就是为什么没有永久的内存分配。
该专题是在问题出现时制定的,当时对原因还没有明确的认识。我的假设是,我有一个由MQ员工输入创建的类,这意味着我没有理由怀疑它是否正常工作。
如果程序没有正确有效地存储数据,你能告诉我如何正确有效地存储数据吗?我应该在类中做什么改变以使其消耗更少的内存?
总的来说,如果终端能提供这样一个类来处理基于CSV的表格,那就非常好了。
问题不在这个班级,而在使用这个班级。
事实上,从CSV中读取数据已经在FileOpen级别用标志FILE_CSV 实现了。
你不需要为此单独设立一个类别。
为初学者提供的免费课程。
第三个参数ArrayResize将数组的实际大小设置为这个数字的倍数。
ArrayResize(arr, 5, 1000) - 将占用内存中的1000个元素。
ArrayResize(arr, 1005, 1000) - 将占用2000个元素的内存。
这就是为什么没有永久的内存分配。
弗拉基米尔不像你,他设法分析了代码并找到了加速的方法。而你在这里把自己定位为一个不能处理别人的代码的理论家。所有这些结论--它们给你带来了什么,也许你能证明增加额外的参数会加快代码速度或减少内存消耗?
问题不在班级,而是在如何使用班级。
事实上,从CSV中读取数据已经在FileOpen级别用标志FILE_CSV 实现了。
你不需要为此单独设立一个类别。
如果你不明白它的用途,你为什么要为别人做决定?我是说你必须为人们提供方便,这就是编写课程的目的。
弗拉基米尔,不像你,能够分析代码并找到一种方法来加速它。而你在这里把自己定位为一个不能与其他人的代码合作的理论家。所有这些结论--它们给你带来了什么,也许你能证明添加额外的参数会加快工作速度或减少内存消耗?
其实弗拉基米尔不可能通过编辑来使这门课更快。这个类是由一个 "MQ员工 "创建的,一个没有阅读文档的用户设法改进了这个类?
阿列克谢-维亚兹米 金。
如果你不明白它的用途,你为什么要为别人做决定?我说,你必须为人们提供方便,这就是编写课程的目的。
那么为了使用标准函数,你必须用类来包装它们吗?
也许你应该阅读FILE_CSV 的文档,而不是使用一整个单独的类?
这里已经有了其他现成的解决方案,但都被忽略了。
我的写到CSV的解决方案,对列数没有限制,就在我的库里。即使是OOP的原则(我想你对这种编程方法并不熟悉)也被尊重。但我不会推荐它。
正确的解决方案不太可能在这里免费出现...
实际上,弗拉基米尔不可能用他的编辑来加快课堂进度。这个类是由一个 "MQ员工 "创建的,而这个用户没有阅读文档,却设法改进了这个类?
你是否检查过,没有发现加速现象?或者你是说我在这里误导大家?
那么,为了使用标准函数,你必须把它们包装成类吗?
也许你应该阅读关于FILE_CSV 的文档,而不是使用整个独立的类?
这里已经有了其他现成的解决方案,但都被忽略了。
我的写到CSV的解决方案,对列数没有限制,就在我的库里。即使是OOP的原则(我想你对这种编程方法并不熟悉)也被尊重。但我不会推荐它。
这里不太可能出现免费的解决方案......
你仔细阅读了这个主题吗?你看到我以函数的形式对现成的解决方案的回答了吗?你有其他解决办法吗?当然,我不知道什么是OOP,这个话题的细心读者会马上注意到它......
关于盈利能力/免费--这很荒谬,我只是表明付费的解决方案并不意味着比免费的更好,而你又在谈论钱......