错误、漏洞、问题 - 页 1336

 

整个问题是因为24个字节吗? 对不起,你是想在计算器上写MT软件吗 :)?

当然,我表示歉意,但你把问题从手指缝里吸出来,就等于堵住了别人的问题,而这些问题很少被开发商的代表注意。

 
Alexey Navoykov:

那么,为什么不对析构器进行优化呢? 我们不得不因为它而存储额外的8个字节......。

好吧,我只是不知道那里是如何实施的。例如,如果你有一个对象的数组。

每个元素的引用(指针)是否存储在系统中?

但你不能拿一个指向结构的指针,这就减少了使用它的便利性。 这就是为什么你有时不得不做出痛苦的选择......如果你能设法减少类的大小,那就太好了。 而如果你也有一个指向结构的指针,一切都会好起来的)。

用new操作符动态地创建对象,你根本不必创建空对象。

该结构不能被指针引用,但可以通过引用来传递结构,例如:OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - 在大多数情况下,这就足够了。

 
Konstantin Karpov:

整个问题是因为24个字节吗? 对不起,你是想在计算器上写MT软件吗 :)?

当然,我表示歉意,但你把问题从手指缝里吸出来,就等于堵住了别人的问题,而这些问题很少被开发商的代表注意。

首先要了解什么是数组。
 
Alexey Navoykov:
你最好先研究一下数组。

好吧,我几年前研究过它们:)如果你把类对象放在一个数组中,然后创建一个指针列表,并在 "堆 "中创建类对象,你被正确地建议了关于新操作符...

我所有的数据都很大,最初由类对象处理,位于 "堆 "中,PC内存是8G,我可以看到这块内存是如何被使用的,甚至当我有一次在算法中犯了错误,内存泄漏时,内存已经满到95%,然后操作系统自己开始清理一切。

因此,你最好不要扮演被冒犯的男孩,而是通过语言的 所有功能 来观察,你就会成功 :)

 
Vasiliy Sokolov:

使用new操作符动态地创建对象,你就完全不必创建空对象了。

该结构不能被指针引用,但该结构可以通过引用传递,例如:OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - 在绝大多数情况下,这就足够了。

这个建议有什么意义? 你似乎只看了一行,就尽快写了一些东西。 我们在讨论类的大小。 这个大小不取决于对象是如何创建的,静态的还是动态的。而 "创建空对象"--我不明白我的意思。 而将参数传入 函数在这里也是绝对不合适的。 你以为我们是小孩子,不知道对象是如何传入函数的?

 
Konstantin Karpov:

好吧,我几年前研究过它们:)如果你把类对象放在一个数组中,然后创建一个指针列表并在 "堆 "中创建类对象,你被正确地告知new操作符...

我所有的数据都很大,最初由类对象处理,位于 "堆 "中,PC内存为8G,我可以看到这块内存被用得很好,甚至当我有一次在算法上犯了错误,内存泄漏,内存被堵塞到95%,然后操作系统自己开始清理一切。

因此,你最好不要扮演被冒犯的男孩,而是通过语言的 所有可能性 来看待,你会得到这一切:)

又是一个聪明人......他是靠计算器起家的,现在他已经不在乎8G了。 关于指针和堆--你的聪明知识有什么用? 这里有人问过指针是什么吗? 还是只是聊以自慰?

总的来说,伙计们,请令人信服地请你们在其他的主题上发帖,拜托,没有人在这里征求你们的意见。对话是专门与开发商进行的。

 
Alexey Navoykov:

这个建议有什么意义呢? 就好像你从行文中读到的,迫不及待地想写点什么。 我们在谈论类的大小。 这个大小并不取决于对象是如何创建的,静态的还是动态的。而 "创建空对象"--我不明白我的意思。 而将参数传入 函数在这里也是绝对不合适的。 你以为我们是小孩子,不知道对象如何传入函数?

听着,聪明的家伙,先去学习内存管理环境下的编程基础知识:你清楚地得到了答案,一个类,即使是一个空的类,也包含某些元数据。他们的规模和组织是最佳的。你有什么资格教开发者如何编写编译器和正确存储数据!?如果你想节省一些字节,就去用C语言或汇编语言建造你的自行车。

有很多聪明的人读过《C语言初学者》,然后给你建议。

 
Alexey Navoykov:

另一个聪明人......他从计算器开始,现在他不关心8G了。 关于指针和堆--为什么你有这么高明的知识? 这里有人问过指针是什么吗? 还是只是生活中的聊天?

总的来说,伙计们,令人信服地请你们在其他的主题中淹没,请,没有人在这里征求你们的意见。对话是专门与开发商进行的。

从你的陈述来看,你的工作是与类对象的 数组打交道,这些对象数量众多,以至于它们的大小填满了终端的内存,所以它的速度一定非常慢,否则你就不会提出这个问题。我认为你在战略上选择了错误的方法来处理你的数据,而且你已经得到了很多关于它的建议。

- 在 "堆 "中为你的对象分配内存,终端内存就不会被堵塞。

- 不要在内存中保留大量的信息,并将数据上传到磁盘,以避免在崩溃时意外丢失--如果有必要,你也可以通过程序上传。

而用建议来加重自己的负担是不值得的,如果你想只和开发商沟通,有一个服务台,但这里有很多人:)

 
Renat Fatkhullin:
我有一个问题 - 终端(MT4,MT5x86和MT5x64)为EA分配多少内存?
 

开发商并非毫无幽默感。

在我看来,这听起来像是下载,以及 "下载 "那种向右或向左摆动的树。