Бета-версия платформы MetaTrader 5 build 4540: улучшения веб-версии и интеграция с OpenBLAS в MQL5 - страница 6

 
Aleksey Vyazmikin #:

Спасибо, а то я засомневался уже.

Print(sizeof(bool));
 
Aleksey Vyazmikin #:

Странно, тогда почему в документации указано "Внутреннее представление – целое число размером 1 байт"?

Когда-то было четыре байта. На форуме легко ищется. Сейчас, действительно, один байт. Был не в курсе, что изменили.

 
fxsaber #:

Когда-то было четыре байта. На форуме легко ищется. Сейчас, действительно, один байт. Был не в курсе, что изменили.

Иногда, бывают вот такие неожиданные положительные изменения :)

Я не так давно стал страдать от нехватки памяти и размеров массива, поэтому раньше не обращал внимание, видимо.

 
Roman #:

Разумно.

 
fxsaber #:

Когда-то было четыре байта. На форуме легко ищется. Сейчас, действительно, один байт. Был не в курсе, что изменили.

https://www.mql5.com/ru/forum/1111/page108#comment_16125

Ошибки, баги, вопросы - Почему не загружает данные по индикатору со всех баров?
Ошибки, баги, вопросы - Почему не загружает данные по индикатору со всех баров?
  • 2010.08.25
  • Дмитрий
  • www.mql5.com
что - это константные выражения, которые тоже имеют тип. short и long если значение константы укладывается в тип int без явного приведения типа невозможно. символьные константы объявлены имеющими тип ushort
 

Не в курсе, к чему Ваша ссылка.


https://book.mql4.com/ru/functions/files

Записи в двух видах бинарных файлов представляют последовательность данных без каких-либо разделителей. Такой порядок записи определяется фиксированной длиной для данных разного типа: 4 байта для данных типа int, bool, datetime и color

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

В каком виде в программе хранятся числовые константы типа #define ?

DenisR, 2010.02.05 21:00

Как следует из учебника, в языке MQL4 мгут быть следующие типы данных:

int - занимает в памяти программы 4 байта

double - занимает в памяти программы 8 байт

bool - занимает в памяти программы 4 байта

string - количество байт равно количеству символов

color - занимает в памяти программы 4 байта

datetime - занимает в памяти программы 4 байта

А если в программе присутствует числовая константа, заданная с помощью #define, (например #define p 3.14), то это не соответствует ни одному из вышеперечисленных типов данных. Другими словами, в дампе скомпилированного файла невозможно найти число (в нашем примере это 3.14). В каком же виде в программе хранятся числовые константы, заданные с помощью #define ?


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Преобразование bool к int - значения

Valery V. Chesnokov, 2006.11.13 20:54

Мне просто понадобится хранить в памяти большой двумерный массив bool переменных для истории цен за пару-тройку лет назад, так реально каждая bool ячейка съест не бит и не байт, а 4 байта в текущей реализации - много :(
 
fxsaber #:

Не в курсе, к чему Ваша ссылка.

Пост от 2010 года.

 
Roman #:

Пост от 2010 года.

У меня нет билда от каждого года, чтобы показать, что bool занимал 4 байта значительно позже 2010 года.

 
struct A
{
  int i;
  double d;
};

void OnStart()
{
  const A Value = {};
  A Array[];
  
  const int Size = ArrayResize(Array, 1e7);

  const ulong StartTime = GetMicrosecondCount();

  Array[Size - 1] = Value;  // Эта строка ускоряет выполнение на 15% на b4410, но не на b4550.
  
  for (uint j = 10; (bool)j--;)
    for (uint i = Size; (bool)i--;)
      Array[i] = Value;
    
  if (!Array[0].d)
    Print(GetMicrosecondCount() - StartTime);
}

Случай, где b4550 работает правильнее b4410.


Однако, с чем связано замедление в 2.5 раза от запуска к запуску?

200398
199928
211184
206664
210706
551279
206995
206588
207979
205794
209932
208624
550121
 

Вроде, публикуешь воспроизводимые баги, но не правятся.

Например, задвоение OnTick в Тестере b4550 воспроизводится на раз.

Новая версия платформы MetaTrader 5 build 4410: улучшения в работе - Проблема с нехваткой памяти.
Новая версия платформы MetaTrader 5 build 4410: улучшения в работе - Проблема с нехваткой памяти.
  • 2024.07.01
  • Alain Verleyen
  • www.mql5.com
ловлю предупреждение от ОС при запуске советника о недостаточности памяти - раньше думаю пол года назад последний раз запусказ работал нормально. все равно беда случилась - компьютер перезагрузился после переназначения агента и повторного запуска теста