Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 31
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В зависимости от софта можно еще скорость увеличить
http://de77.com/comparison-of-ram-drives-with-benchmarks
Надо обязательно мерить на конкретном применении, поскольку скорости различаются в зависимости от размера блока, чтения/записи и последовательно/разбросанно. Непредсказуемо, какой будет впереди.
ImDisk - бесплатная (хотя не всем это важно), да и вряд ли заметно отстанет от лидера. Я бы хотел узнать результаты для тестера, если кто будет сравнивать.
И статья опять устаревшая (на 9 лет).
Повторю, что GPU-disk чуть медленнее, но выгоднее. Лучше использовать свободный VRAM, чем отнимать RAM у системы, если её не очень много. А свободной VRAM у всех есть, хотя бы 4Gb (за вычетом примерно 128Kb на дисплей). У меня - 12Gb, а дисплей на встройке.
В прицепе советник, который демонстрирует ускорение с экономией памяти.
свободной VRAM у всех есть, хотя бы 4Gb
Много лет без видеокарты.
Интересно, что RAMDrive-версия на некоторых конфигурациях быстрее FileMap-версии.
Видимо, виртуальные диски используют какой-то механизм, что быстрее memcpy.
Много лет без видеокарты.
Это нормально, я тоже всегда жил со встройкой, даже для игр хватало в низком качестве. Потом накупил для майнинга (8Gb), теперь есть одна с 12Gb для игр и нейросетей и VRAM-диска.
Нормально, но всё же большинство имеет дискретные GPU. А может, я переоцениваю... Опрос организовать, что ли ))
Это нормально, я тоже всегда жил со встройкой, даже для игр хватало в низком качестве. Потом накупил для майнинга (8Gb), теперь есть одна с 12Gb для игр и нейросетей и VRAM-диска.
Нормально, но всё же большинство имеет дискретные GPU. А может, я переоцениваю... Опрос организовать, что ли ))
Последняя дискретная видяха у меня была на третьем пеньке.
Лучше использовать свободный VRAM, чем отнимать RAM у системы, если её не очень много. А свободной VRAM у всех есть, хотя бы 4Gb (за вычетом примерно 128Kb на дисплей). У меня - 12Gb, а дисплей на встройке.
У видеопамяти задержки будут больше
Похоже, получилось.
Результат вычислений тот же, но при этом скорость кратно возросла: шесть секунд на расчеты и 51 миллион тиков в секунду. И это при том, что все агенты использовали одну единую память на всех!
inBlocks - сколько блоков одинаковых данных использовать. Возможно, будет влиять на многоканальные конфигурации.
Потестировал с разным числом блоков. Все тесты с 36 агентами.
В режиме по всем тикам:
IsMathMode() = false
Agents = 36
Passes = 1001
AmountTicks = 11421631 (653 MB)
Performance = 3.2 Ticks (millions)/sec.
TotalTime = 00:01:43.175
В режиме мат. вычислений:
TotalTime = 00:00:13.291
TotalTime = 00:00:14.196
TotalTime = 00:00:12.676
TotalTime = 00:00:17.233
TotalTime = 00:00:11.120
TotalTime = 00:00:14.291
TotalTime = 00:00:12.813
Ускорение оптимизации по сравнению с режимом по всем тикам = 39.1/3.2=12.2 раз и по общему времени оптимизации = 103/13=7.9 раз
Увеличение числа блоков памяти роста производительности не дает. Немного странно, что не согласуется с тестом через RAM диск, но таков результат теста. Так что код можно упростить, удалив строки с выбором блока.
При оптимизации через RAM диск. Лучший результат был при 3-х блоках памяти:
Agents = 36
Performance = 20.9 Ticks(millions)/sec.
Total time in sek: 16
Но он в 2 раза медленнее по Performance и на 20% по общему времени этого варианта работы непосредственно с памятью.
Потестировал с разным числом блоков. Все тесты с 36 агентами.
В режиме по всем тикам:
IsMathMode() = false
Agents = 36
Passes = 1001
AmountTicks = 11421631 (653 MB)
Performance = 3.2 Ticks (millions)/sec.
TotalTime = 00:01:43.175
В режиме мат. вычислений:
TotalTime = 00:00:13.291
TotalTime = 00:00:14.196
TotalTime = 00:00:12.676
TotalTime = 00:00:17.233
TotalTime = 00:00:11.120
TotalTime = 00:00:14.291
TotalTime = 00:00:12.813
Вы не могли выделить память под такое количество блоков.
Для эксперимента в исходнике сделал выделение четырех блоков. Ваш блок 658 Мб, поэтому выделить четыре таких блока в памяти получится, т.к. это меньше 4-х гигабайтов.
Ограничение на 4 гига стоит, как минимум, здесь.
HANDLE CreateFileMappingW(HANDLE hFile,PVOID lpFileMappingAttributes,uint flProtect,uint dwMaximumSizeHigh,uint dwMaximumSizeLow,const string lpName);
Если не менять исходник, то он размещает четыре блока. И можно, соответственно, варьировать inBlocks (сколько блоков использовать из выделенных) в диапазоне 1-4.
Чтобы увеличить диапазон до 1-36, нужно выделить 36 блоков, прописав их в исходнике (заменить исходные 4 на 36 в строке 232). Но для выделения 36 блоков необходимо уложиться в 4 гига, а это значит, что тиковой истории должно быть не больше ~100 Мб.
Вы не могли выделить память под такое количество блоков.
Для эксперимента в исходнике сделал выделение четырех блоков. Ваш блок 658 Мб, поэтому выделить четыре таких блока в памяти получится, т.к. это меньше 4-х гигабайтов.
Ограничение на 4 гига стоит, как минимум, здесь.
Если не менять исходник, то он размещает четыре блока. И можно, соответственно, варьировать inBlocks (сколько блоков использовать из выделенных) в диапазоне 1-4.
Чтобы увеличить диапазон до 1-36, нужно выделить 36 блоков, прописав их в исходнике (заменить исходные 4 на 36 в строке 232). Но для выделения 36 блоков необходимо уложиться в 4 гига, а это значит, что тиковой истории должно быть не больше ~100 Мб.
А так же ошибка даже с 1-м блоком, если сохранить историю с 2023.01.01 по сегодня.
После обеда попробую взять меньше истории для 36 блоков - это около 1 месяца будет.
Но если нужны тесты за несколько лет, то видимо надо через RAM диск работать (.