Ошибки, баги, вопросы - страница 2506
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Обоснуйте
Регистры измеряются не в байтах, а в битах. Следовательно эта строчка некорректно используется во всём остальном коде:
Регистры измеряются не в байтах, а в битах. Следовательно эта строчка некорректно используется во всём остальном коде:
Нет, вы что-то странное говорите. Я не собираюсь это доказывать. Посмотрите документацию к процессору, почитайте здесь https://stackoverflow.com/questions/7281699/aligning-to-cache-line-and-knowing-the-cache-line-size/7284876
Мне не нужны регистры, я вообще не о них.
Нет, вы что-то странное говорите. Я не собираюсь это доказывать. Посмотрите документацию к процессору, почитайте здесь https://stackoverflow.com/questions/7281699/aligning-to-cache-line-and-knowing-the-cache-line-size/7284876
Мне не нужны регистры, я вообще не о них.
Хм... Ладно. В общем кеш у разных моделей процессоров разный. И программно его размер не узнать. По этому на него глупо ориентироваться. А вот регистры у всех процессоров двух типов, и именно на размер регистров ориентируются опытные программисты. И даже ориентирование на регистры не всегда спасает, потому что между программой и процессором находятся компилятор и операционная система.
Кроме того данная строчка посчитана неверно и без учёта регистров:
Хм... Ладно. В общем кеш у разных моделей процессоров разный. И программно его размер не узнать. По этому на него глупо ориентироваться. А вот регистры у всех процессоров двух типов, и именно на размер регистров ориентируются опытные программисты. И даже ориентирование на регистры не всегда спасает, потому что между программой и процессором находятся компилятор и операционная система.
Опять мимо, все развивается, все больше упор делается на многопоточность, и вот вам пожалуйтса - крестовая стд библиотека вам всё расскажет
https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size
Опять мимо, все развивается, все больше упор делается на многопоточность, и вот вам пожалуйтса - крестовая стд библиотека вам всё расскажет
https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size
Возможно, но пока вы меня не убедили.Не подскажет, а нагадает. Внимательно читаем спецификацию.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Возможно, но пока вы меня не убедили.
Хоть я не совсем понял, что за смещение вы хотели получить, но понять косяк просто: абсолютный адрес полностью бесполезен в вычислениях. Вы забыли что точкой отсчёта для памяти является адрес структуры? И вы наверное хотели получить смещение массива в блоке памяти структуры? А это получается разницей адресов структуры и нулевого элемента массива.
Если нет значения в буфере на баре, то это нужно явно прописать в буфере. Т.е., если рассчитанное значение должно быть выведено в буфер - записываем его в буфер, иначе - записываем пустое значение.
Спасибо, Артем.
Хоть я не совсем понял, что за смещение вы хотели получить, но понять косяк просто: абсолютный адрес полностью бесполезен в вычислениях. Вы забыли что точкой отсчёта для памяти является адрес структуры? И вы наверное хотели получить смещение массива в блоке памяти структуры? А это получается разницей адресов структуры и нулевого элемента массива.
Действия по порядку:
1 - получаем адрес первого эл-та ar[] в текущей структуре data.
2. узнаём его смещения от начал кэш-линии
3. находим кол-во байт от него до конца кэш-линии
4. узнаём кол-во интов, которые вместятся в это пространство до конца кэш-линии.
Вы у себя запускали? Разница в скорости есть? Или это лишь у меня?
2. узнаём его смещения от начал кэш-линии
С чего вы взяли что так можно определить какое-то смещение?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2019.07.09 11:13
Data data[]; ArrayResize(data, 32768);
происходит замедление в 6 раз!
От чего эти тормоза?