Новая версия платформы MetaTrader 5 build 4410: улучшения в работе - страница 11
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просто в голову пришло:
Добавить возможность объясвить локальную не статическую переменную-ссылку на объект класса. Тогда это работало бы так-же, как метод withRef, но без необходимости делать аргумент-прокладку.
Ваш пример по ссылке заставил меня сильно задуматься, сколь огромное количество лишних проверок происходит сейчас при работе с указателями. Почти написал обход через локальные классы, но вышел за пределы языка.
Любой механизм отказа от подобных проверок приветствовал бы.
Ваш пример по ссылке заставил меня сильно задуматься, сколь огромное количество лишних проверок происходит сейчас при работе с указателями. Почти написал обход через локальные классы, но вышел за пределы языка.
Любой механизм отказа от подобных проверок приветствовал бы.
Непонятно, зачем столько проверять указатели?
Я использую много указателей, и мне почти никогда не приходится их проверять. У вас есть пример кода из «реального мира»?
Непонятно, зачем столько проверять указатели?
Я использую много указателей, и мне почти никогда не приходится их проверять. У вас есть пример кода из «реального мира»?
We are not talking about checking pointers in the MQL program code, but about checking pointers by the terminal at runtime to ensure safe execution. That is, these are not the checks that you programmed, but overhead.
Мы говорим не о проверке указателей в коде MQL программы, а о проверке указателей терминалом в рантайме для обеспечения безопасного выполнения. То есть, это не те проверки, которые вы запрограммировали, а оверхед.
We are not talking about checking pointers in the MQL program code, but about checking pointers by the terminal at runtime to ensure safe execution. That is, these are not the checks that you programmed, but overhead.
Мы говорим не о проверке указателей в коде MQL программы, а о проверке указателей терминалом в рантайме для обеспечения безопасного выполнения. То есть, это не те проверки, которые вы запрограммировали, а оверхед.
Спасибо, но боюсь, я не понимаю.
У нас нет никакого контроля над терминалом, если вам не нужны накладные расходы на указатели, просто не используйте указатели.
Мне интересно, что это такое, MQL5 даже с указателями работает очень быстро.
Я буду продолжать использовать автоматический перевод. Если это недостаточно хорошо, пожалуйста, дайте мне знать.
MQL5 даже с указателями работает очень быстро
You are right, that overhead is not worth bothering with.
Based on the results of that script, it can be assumed that using a pointer adds approximately 2 nanoseconds of overhead for each access to the object through the pointer (+20000 microseconds for 10 million accesses to the object). And this is using the old i7-7700. 500 million times avoiding a pointer to save a second on an old processor.
Я буду продолжать использовать автоматический перевод. Если это недостаточно хорошо, пожалуйста, дайте мне знать.
I added the English translation only because I know that automatic translators are much worse at translating from Russian to English than vice versa.
Вы правы, тот оверхед не стоит того, чтобы морочить голову.
По результатам того скрипта можно предположить, что использование указателя добавляет примерно 2 наносекунды оверхеда для каждого обращения к объекту через указатель (+20000 микросекунд для 10 миллионов обращений к объекту). И это на старом i7-7700. 500 миллионов раз избежать указателя, что бы сэкономить секунду на старом процессоре.
Я буду продолжать использовать автоматический перевод. Если это недостаточно хорошо, пожалуйста, дайте мне знать.
Я добавил перевод на английский язык только потому, что знаю, что автоматические переводчики гораздо хуже справляются с переводом с русского на английский, чем наоборот.
500 миллионов раз избежать указателя, что бы сэкономить секунду на старом процессоре.
50 миллионов тиков, на каждом по 10 обращений через указатели (очень скромно) - один проход экономит секунду.
ГА на 10 000 проходов - почти три часа экономии на одном Агенте. Пусть 10 агентов - 15 минут экономии на многоядерке, если компилятор делает правильный код.
Terminal: Исправлено падение терминала, происходившее в некоторых случаях при запуске тестирования.
Что-то у меня после обновления на 4468 стал терминал крашиться при попытке открыть тестер...
Краш лог есть.
И ни к каким счетам кроме MQ -Demo не коннектится...
Что-то у меня после обновления на 4468 стал терминал крашиться при попытке открыть тестер...
Краш лог есть.
И ни к каким счетам кроме MQ -Demo не коннектится...
Где?
Где?
Вам отправить?
Вам отправить?
Мне не нужно. Просто в zip-архиве приложить к своему посту надо было. Можете отредактировать свой пост и приложить.