• Нужно ли делать условие перед вызовом метода для избежания выделения дополнительной памяти?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мне нужно аргументировать ответ, но я не знаю как ответить правильно.
    Очень просто: Так как проверка отнимает процессорное время, то экономия все равно будет липовой, вместо памяти потратится ресурс процессора. Сколь ни будь значительной экономии это не даст ни в том, ни в другом случае, точнее экономия будет в случае отсутствия проверки и существования переменной, что будет происходить скорее всего чаще чем несуществование переменной, ну или по крайней мере в каком-то числе случаев, в то время как проверка будет осуществляться всегда.
    Ответ написан
    Комментировать
  • Нужно ли делать условие перед вызовом метода для избежания выделения дополнительной памяти?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если говорить про конкретный пример, то он просто бессмысленный, даже с точки зрения житейской логики.
    Учитывая, что if ($isTestOrder) можно прочитать, как ЕСЛИ переменная не занимает памяти то проверка выглядит просто глупостью. "Если переменная не занимает памяти, то не передавать её. Так мы с экономим память!" Если переменная и так не занимает никакой памяти, то какого еще дополнительно выделения памяти она может потребовать?

    Если говорить про передачу параметров вообще, то оба неправы, но тимлид ближе к истине и надо всегда следовать его рекомендации не экономить на пустом месте. А экономить только адресно, когда экономия очевидна и востребована.

    В общем случае тут не будет никакой экономии, ни на спичках, ни без.

    При передаче параметра внутрь метода под него выделяется дополнительная память

    - это чушь и неправда.

    При передаче в функцию параметра, который в принципе может занимать хоть какую-то осмысленную память (то есть не числа, не булева значения, и не null), память под него НЕ выделяется.
    • Объекты изначально передаются по ссылке
    • Строки и массивы - с использованием механизма copy-on-write. Что означает, что память будет выделяться только если переданное значение будет изменено в процессе обработки. А если оно будет только считываться, то дополнительной памяти занимать не будет

    Для всех остальных типов, как было правильно сказано тимлидом - это будет экономия на спичках.
    Ответ написан
    6 комментариев
  • Какие бы дали замечания по коду, где реализовано увеличение картинки при клике изменение масштаба при скролле?

    Stalker_RED
    @Stalker_RED
    Ну, оно работает, это хорошо.

    Что я бы предложил улучшить:
    1. добавить transition для плавности
    2. добавить обработку тача, колесо на мобилки не завезли же.
    Ответ написан
    3 комментария