Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
при чему тут компьютер...
Если выполняется на том же железе... при равных условиях - а результат вычислений разный https://www.mql5.com/ru/forum/123371
А заменой железа у Vinin`a занимаетесь Вы??? И что надо было увидеть по Вашей ссылке??? Там есть оговорка о том, что железо не менялось???
увидеть и понять - что выполнялось на том же железе
ага, в фемто...
процессор террагерцовый чтоли?
Почему терагерцевый? При частоте 1 ГГц один такт по определению длится 1 нс, т.е. результат автора (сложение - 7687) указан в пикосекундах (к тому же в самом скрипте время в миллисекундах делится на 1е9). Ради любопытства написал подобный скрипт и запустил на старом и новом MT - слева версия 509, справа 610, процессор Athlon 1,9 двухъядерный. Те же операции над типом double в новой версии выполняются в 5 раз быстрее.
Да при чём тут такты? Хотя и с тактами ошибочка, современные процессоры за 1 такт не одну опперацию успевают сделать. Но что поделать с временем загрузки данных в память, потом в кэш процессора, потом в регистры? На это всё сотни наносекунд надо, да и логарифмирование или производство в степень весьма трудоёмки, а ведь результат ещё обратно по цепочке в терминал передать надо...
Так что микросекунды, батенька, микросекунды...
void OnStart()
{
double e=2.7182818284590452353602874713527;
double pi=3.1415926535897932384626433832795;
double tmp;
uint n=1000000000;
uint i, t1, t2;
t1=GetTickCount();
for (i=0;i<n;i++) tmp=e+pi;
t2=GetTickCount();
Alert("Миллиард сложений (вместе с циклом) выполняются за "+IntegerToString(t2-t1)+" мс");
}
1e9 циклов - 4134 мс. What's wrong?
Одна итерация - 4.134 нс, это примерно 7 тактов для данного процессора (программа, естественно, работает на одном ядре), что в принципе неплохой результат (тем более для 32-битного процесса, в котором тип double рассчитывается как два машинных слова). О сотнях наносекунд речи не идёт, т.к. переменные, к которым обращаются миллиард раз, всяко будут кэшированы.