- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
берем этот код:
и
этот:
в обоих случаях число надо сложить n-ное кол-во раз
получается и там и тут сумма вычисляется циклично и нагрузка на процессор одинаковая ? ))
Точный ответ на этот вопрос даст только профайлер. Либо натурные испытания.
Я не знаток внутренней кухни php, но сомневаюсь что пример с делением окажется быстрым.
Из опыта с С++. Вполне невинные исправления (и вполне очевидные) в состоянии ускорить выполнение раз в 10.
Однако узкие места лучше искать софтом, а не вручную.
Я не знаток внутренней кухни php
А разве это не JavaScript?
получается и там и тут сумма вычисляется циклично и нагрузка на процессор одинаковая ? ))
Нет. Во втором варианте (это не PHP код) выполняется одна операция, как вы видите (10×11÷2). Т.е. разные вычисления.
Оптимизайка, ТС, по видимому, имеет ввиду механизм вычисления на уровне процессора. То есть в первом случае некая ячейка памяти (условно-приближенно) "total" 10 раз пополняется из ячейки памяти "count", а во втором случае эта ячейка 10 раз пополняется значением "11". Счётчик "count" отслеживается и в первом и во втором случаях. Лично я не стал бы тут гадать, потому что я не знаком с механизмами оптимизации на уровне процессора.
Но чисто интуитивно - второй случай проще.
А разве это не JavaScript?
Меня тоже удивляет синтаксис, но над ним написано "php код", не доверять ТСу яб не стал.
---------- Добавлено 15.06.2018 в 15:21 ----------
Но чисто интуитивно - второй случай проще.
Это еще не факт, что 10 сложений будут дороже 1 деления....
Счётчик "count" отслеживается и в первом и во втором случаях
Какой ещё счетчик во втором случае? Его там нет. Видно же, что тут разные алгоритмы, в первом есть цикл и 2 переменных, а во втором одна переменная и алгоритм вычисления другой.
Оптимизайка, ТС, по видимому, имеет ввиду механизм вычисления на уровне процессора. То есть в первом случае некая ячейка памяти (условно-приближенно) "total" 10 раз пополняется из ячейки памяти "count", а во втором случае эта ячейка 10 раз пополняется значением "11". Счётчик "count" отслеживается и в первом и во втором случаях. Лично я не стал бы тут гадать, потому что я не знаком с механизмами оптимизации на уровне процессора.
Но чисто интуитивно - второй случай проще.
на уровне транзисторов и проводников.
Посылаются положительные/отрицательные импульсы, расчет производится в двоичной системе счисления ( 0 и 1 ) путем сдвигов регистров
0001 - 1
0010 - 2
0011 - 3
0100 - 4
0101 - 5
0110 - 6
...
Какой ещё счетчик во втором случае? Его там нет.
У процессора же умножение в конечном счёте сводится к сложению. Там и счётчики появляются, и флаги всякие. И лично я не знаю, в каком случае больше операций на уровне ячеек памяти.
Это еще не факт, что 10 сложений будут дороже 1 деления....
---------- Добавлено 15.06.2018 в 20:36 ----------
Leonid H, А Вы проверьте. Проделайте по 10000 раз то и другое, и сравните время выполнения.
У процессора же умножение в конечном счёте сводится к сложению.
Да ладно?
https://web.itu.edu.tr/kesgin/mul06/intel/instr/mul.html
Да ладно?
Да наверняка идёт поразрядное умножение с последующим сложением.