测试CGraphic--问题和建议 - 页 7 12345678910111213 新评论 --- 2017.06.14 08:30 #61 调试每个函数可以正确定位问题,并在SDA中设置一个任务。在计算画布尺寸时,似乎有一个错误,一个千兆字节的画布正试图重新创建。 或者在某种循环中创建一个巨大的数组 Vladimir Karputov 2017.06.14 08:34 #62 o_o:调试每个函数可以正确定位问题,并在SDA中设置一个任务。在计算画布尺寸时,似乎有一个错误,一个千兆字节的画布正试图重新创建。 或者它在某种循环中创建一个巨大的数组 更多类似的情况。"......在某种循环中创建一个巨大的数组",因为我肯定见过一个300个元素的数组在RAM上运行。当笔记本电脑在 "呼吸 "时,我设法看到了5GB。问题只是漂浮在空中--至少把屏幕上发生的事情录下来--抓住哪些组合会导致致命的结果。 --- 2017.06.14 08:46 #63 对我来说,它没有播放... CCurve *curve_b=my_graphic.CurveAdd(arrX,arrY,CURVE_LINES,"Close"); CAxis *xAxis=my_graphic.XAxis(); // получаем ось X //---попеременно комбинирую (комментировать, раскоментировать) строки 87 //--- и 88 можно словить момент поглощения памяти и зависания компьютера //xAxis.AutoScale(false); //xAxis.Type(AXIS_TYPE_DATETIME); -> my_graphic.CurvePlotAll(); my_graphic.Update(); ... Vladimir Karputov 2017.06.14 08:52 #64 o_o:我无法重现它。 我也没有一个清晰的回放。我刚刚看到这个。 for(int i=0; i<size;++i)这不就是问题所在吗? --- 2017.06.14 08:56 #65 不,是反过来的)。 TheXpert 2017.06.14 08:59 #66 o_o: 不,恰恰相反,这很好 )这没有什么区别。一个正常的编译器应该自己做这些优化。从描述来看,我们怀疑问题出在内存泄漏上,也许根本就不在代码中。 Vladimir Karputov 2017.06.14 08:59 #67 o_o: 不,这是好的反面 ) 把它修正为通常的i++,并编译了更多的扩展代码=5GB了:)。我稍后会给出代码,当我们在徘徊时...... Roman Konopelko 2017.06.14 09:01 #68 Vladimir Karputov: 这种可能性更大。"......在某种循环中创建一个巨大的数组",因为我肯定见过一个300个元素的数组会导致RAM。当笔记本电脑在 "呼吸 "时,我设法看到了5GB。问题只是浮动的--你不妨把正在发生的事情放在第三方摄像机的视频上--来捕捉哪些组合会导致致命的结果。下午好! 挂起的原因是禁用了自动缝合功能:xAxis.AutoScale(false)。在这种情况下,你有一个非常大的数值范围存储在arrX数组中。double MAX = arrX[ArrayMaximum(arrX)]; // 1497438000.0 double MIN = arrX[ArrayMinimum(arrX)]; // 988653600.0而你在放签名my_graphic.XAxis().DefaultStep()时,并没有改变分割轴的步长值,由于它默认为25.0,所以库试图生成的签名数是相等的。m_xsize=(int)MathRound((max-min)/step)+1; // 20351377这导致了一个挂,有两个选择。离开自动剥离。向my_graphic.XAxis().DefaultStep()方法传送一个适当的值,以改变默认步长(我得到50878800.0,分成10部分)。 Vladimir Karputov 2017.06.14 09:03 #69 Vladimir Karputov: 修正为熟悉的i++,并编译了更多的扩展代码=5GB了:)。我稍后将给出代码,同时挂... 在这里的某个地方。麻烦。我只是在糟蹋这些台词。 附加的文件: EveningStarStatistics.mq5 18 kb Vladimir Karputov 2017.06.14 09:16 #70 Roman Konopelko:下午好! 挂起的原因是禁用了自动步进:xAxis.AutoScale(false)。你有一个非常大的数值范围存储在arrX数组中。而你在放签名my_graphic.XAxis().DefaultStep()时,并没有改变分割轴的步长值,由于它默认为25.0,所以库试图生成的签名数是相等的。这导致了一个挂,有两个选择。要离开自动附件。给my_graphic.XAxis().DefaultStep()方法传递一个适当的值,以改变默认的间距(我得到的值是50878800.0,用于10部分的分割)。 谢谢!用AutoScale和一般的步骤设置切割(删除)线条。并立即提出一个建议:我可以一次为两个轴做一个斜的(有角度的)字体(my_graphic.FontSet("Arial",10,0,180);)。我们不能让这种字体(或角度)设置方法成为一个单独的轴吗? 附加的文件: EveningStarStatistics.mq5 18 kb 12345678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
调试每个函数可以正确定位问题,并在SDA中设置一个任务。
在计算画布尺寸时,似乎有一个错误,一个千兆字节的画布正试图重新创建。
或者在某种循环中创建一个巨大的数组
调试每个函数可以正确定位问题,并在SDA中设置一个任务。
在计算画布尺寸时,似乎有一个错误,一个千兆字节的画布正试图重新创建。
或者它在某种循环中创建一个巨大的数组
更多类似的情况。"......在某种循环中创建一个巨大的数组",因为我肯定见过一个300个元素的数组在RAM上运行。当笔记本电脑在 "呼吸 "时,我设法看到了5GB。
问题只是漂浮在空中--至少把屏幕上发生的事情录下来--抓住哪些组合会导致致命的结果。
对我来说,它没有播放
我无法重现它。
我也没有一个清晰的回放。我刚刚看到这个。
这不就是问题所在吗?
不,恰恰相反,这很好 )
这没有什么区别。一个正常的编译器应该自己做这些优化。
从描述来看,我们怀疑问题出在内存泄漏上,也许根本就不在代码中。
不,这是好的反面 )
把它修正为通常的i++,并编译了更多的扩展代码=5GB了:)。我稍后会给出代码,当我们在徘徊时......
这种可能性更大。"......在某种循环中创建一个巨大的数组",因为我肯定见过一个300个元素的数组会导致RAM。当笔记本电脑在 "呼吸 "时,我设法看到了5GB。
问题只是浮动的--你不妨把正在发生的事情放在第三方摄像机的视频上--来捕捉哪些组合会导致致命的结果。
下午好!
挂起的原因是禁用了自动缝合功能:xAxis.AutoScale(false)。
在这种情况下,你有一个非常大的数值范围存储在arrX数组中。
而你在放签名my_graphic.XAxis().DefaultStep()时,并没有改变分割轴的步长值,由于它默认为25.0,所以库试图生成的签名数是相等的。
这导致了一个挂,有两个选择。
修正为熟悉的i++,并编译了更多的扩展代码=5GB了:)。我稍后将给出代码,同时挂...
在这里的某个地方。
麻烦。我只是在糟蹋这些台词。
下午好!
挂起的原因是禁用了自动步进:xAxis.AutoScale(false)。
你有一个非常大的数值范围存储在arrX数组中。
而你在放签名my_graphic.XAxis().DefaultStep()时,并没有改变分割轴的步长值,由于它默认为25.0,所以库试图生成的签名数是相等的。
这导致了一个挂,有两个选择。
谢谢!用AutoScale和一般的步骤设置切割(删除)线条。
并立即提出一个建议:我可以一次为两个轴做一个斜的(有角度的)字体(my_graphic.FontSet("Arial",10,0,180);)。我们不能让这种字体(或角度)设置方法成为一个单独的轴吗?