MishGUN
Новичок
Оптимизация кода. Время выполнения функций.
Недавно задался вопросом о полной оптимизации кода. Уперся в то, что одну и ту же цель средствами РНР можно достичь разными путями. Например, операция сравнения: есть переменная $a=1 и есть массив числел, надо проверить входит ли $a в этот массив. Попробовал три способа - switch с перебором всех значений, in_array и простой перебор значений массива типа $a==$array[0] or $a==$array[1] or... И, что удивительно (для меня) количество кода обратно пропорционально зависит от скорости работы. Другими словами, switch дал самый маленький показатель времени выполнения, затем перебор и затем in_array. Казалось бы, написанные разработчиками языка функции должны работать быстро, но нет, в данном случае in_array работает в 2 раза дольше.
Это заставляет задуматься и приступить к поиску идеальных способов и для других целей. Искать самостоятельно будет достаточно сложно, поэтому хочется услышать от вас подобные примеры (если кто сталкивался с этим или хочет столкнуться). Таким образом, можно будет складывать на форуме большое множество примеров, что, думаю облегчит некоторым жизнь
Недавно задался вопросом о полной оптимизации кода. Уперся в то, что одну и ту же цель средствами РНР можно достичь разными путями. Например, операция сравнения: есть переменная $a=1 и есть массив числел, надо проверить входит ли $a в этот массив. Попробовал три способа - switch с перебором всех значений, in_array и простой перебор значений массива типа $a==$array[0] or $a==$array[1] or... И, что удивительно (для меня) количество кода обратно пропорционально зависит от скорости работы. Другими словами, switch дал самый маленький показатель времени выполнения, затем перебор и затем in_array. Казалось бы, написанные разработчиками языка функции должны работать быстро, но нет, в данном случае in_array работает в 2 раза дольше.
Это заставляет задуматься и приступить к поиску идеальных способов и для других целей. Искать самостоятельно будет достаточно сложно, поэтому хочется услышать от вас подобные примеры (если кто сталкивался с этим или хочет столкнуться). Таким образом, можно будет складывать на форуме большое множество примеров, что, думаю облегчит некоторым жизнь