绕过MQL4和MQL5中的Digits(),获取任何数字的小数位数(不仅仅是引号)。 - 页 20

 
Алексей Тарабанов:

什么的结果?

速度
 
fxsaber:

多重性是问题的条件。

很简单,一个谜题?

 
Алексей Тарабанов:

很简单,一个谜题?

实际应用

关于交易、自动交易系统和策略测试的论坛

新版MetaTrader 5 build 1930:MQL5中的浮动图表窗口和.Net库

fxsaber, 2018.12.09 00:18

这个例子 现在运行速度提高了15倍

1000000
Time[TestResource()] = 286646


粗略地说,通过资源的完整的写/读ticks循环是以每秒400万ticks的速度运行。


关于交易、自动交易系统和交易策略测试的论坛

讨论 "在MQL5中亲手制作的多线程异步WebRequest "文章

fxsaber, 2018.12.09 00:52

试试更新后的Resource_Data.mqh,网页传输滞后的现象应该会消失。

#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

#define  BENCH(A)                                                              \
{                                                                             \
  const ulong StartTime = GetMicrosecondCount();                              \
  A;                                                                          \
  Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \
}  

const RESOURCEDATA<uchar> Resource("::" + __FILE__); // Ресурс для передачи данных (байты)
uchar BytesIn[];
const int Init = ArrayResize(BytesIn, 1000000);

void TestResource()
{
  uchar BytesOut[];

  Resource = BytesIn;
  Print(Resource.Get(BytesOut));
}

void OnStart()
{
  BENCH(TestResource());
}


旧版本

1000000
Time[TestResource()] = 103746


新版本

1000000
Time[TestResource()] = 5222
 
Ilya Malev:

是否有与常规内置ArraySort在随机抽样上的排序速度比较? 至少有一种方法,它对随机数据的排序平均速度较快...

或者说不快,但至少是一样的。或者没有那么快,但至少不会超过两倍的时间。没有任何Dll和其他诸如多线程的东西

有一个源代码,你可以自己测量。

 
懒惰的骨头。
 
Nikolai Semko:
过不了关。
等我到了电脑前,一定要参加。
在快速查看之后,我已经有了如何将结果提高10-20%的想法。

恐怕已经停留 在最大性能上了。

 
fxsaber:

恐怕我们已经被锁定 在最大性能上了。

也许有什么是我没有注意到的。但如果你只使用一种类型的工会,仍然有潜力。
 
Nikolai Semko:
可能有一些我没有注意到的东西。但如果你只使用一种类型的工会,仍然有潜力。

很高兴自己是错的。

 
Алексей Тарабанов:
懒惰的骨头。
你的酒味很重。别喝了,中校同志。
 
fxsaber:

很高兴自己是错的。

现在已经在路上了。你可以自己试试。我们的想法是用不同大小的结构数组组成的联合体,例如10、100、1000、10000......。
这将使循环缩短几个数量级,并使ArrayCopy的调用 数量减少几个数量级。
这应该是接近于memcopy的变体