算法、解决方法、其性能的比较 - 页 6

 
Alexandr Andreev:

一个正常的整数数组有什么问题? 为什么要用thongs....?

因为我们事先不知道EA会做多少个交易。我们需要提前为数组分配内存,但我们不知道有多少。

因此,我们必须找到一个快速、简短、不占用不必要的内存的解决方案。

 
Реter Konow:

并非如此。

...

再一次,你不明白我们在谈论什么。交易号码是由交易系统(MetaTrader或交易所)分配的。交易号码不是指交易的序列号,而是指由HistoryDealGetTicket 函数返回的票据。因此,考虑到这一点并修改你的例子。
 
Alexandr Andreev:

再一次,想象一下,你用一个类代替字符串来存储一个动态的 图表数组--你认为这很快吗?

我不知道字符串函数的内部工作原理,但函数速度测量显示,从一串成千上万的medjic中找到并返回一个medjic需要不到100微秒的时间。

这在我看来是非常快的。它不太可能更快。

 
Реter Konow:

因为我们事先不知道EA会做多少个交易。我们需要提前为数组分配内存,但我们不知道有多少。

这就是为什么我们必须找到一个快速、简短、不占用不必要的内存的解决方案。

关于快速。测量所有24000名医学家的提取速度。你会感到不愉快的。

 
Реter Konow:

完成了。

你的例子已经无法修复了 :)

如果你没有足够的行尺寸会怎样?

你的例子可能有32767条记录(transaction),所以试着比较最后写入和读取的magik。


 
Vasiliy Sokolov:
再一次,你不明白我们在谈论什么。交易系统(MetaTrader或交易所)分配了一个交易号码。交易号码不是指交易的序列号,而是指由HistoryDealGetTicket 函数返回的门票。因此,考虑到这一点,修改你的例子。

这不是一个问题。明天我将制作第二个版本,它将与票据一起使用。

这种变体在交易中也很方便。

 
Vasiliy Sokolov:

快速 计数方面。测量所有24,000,000个Medjits的检索速度。你会感到很不愉快的。

好吧,在任何时候,我们只需要一个medjic,对吗?

提取一个medjack,访问与订单有关的任何信息。

为什么我们需要一次性提取24000个中子?

 

我到底在这里做什么!?我在和谁浪费我的时间呢?我最好去喝杯更烈的酒。

p.s. 哦,对了,你还有一个错误。如果MathRand 在第三次调用时返回例如数字1000,并写上_3_1000_,那么对于序数为1000的交易,会发现什么样的medjic?
 
Yury Kulikov:

你的例子现在无法修复 :)

如果你没有足够的行尺寸会怎样?

你的例子可能有32767条记录(transaction),所以试着比较最后写入和读取的magik。


谢谢你指出行的长度 限制。

你可以开始写第二行。然后是第三个,以此类推...:)

 
Реter Konow:

我不知道字符串函数的内部实现,但一个函数的运行时间测量显示,从总共几千个medjic的字符串中找到并返回一个medjic需要不到100微秒的时间。

我想这是非常快的。我认为它不可能再快了。


嗯,简而言之,一个字符的字符串是一个具有0到255的代码的字符,重量为1个字节......而它分配的内存只够装下256个值,257个就装不下了,它将切换回第一个。

在任何页面中,每个字符都是一个从0到255的数字...所以我们把数字10000000--它有4个字节的重量,转换成字符串 "10000000",然后为每个字符分配内存,就像一个单独的图表从0到255一样......。总共8个字节。 没有任何地方保存内存。