Чтение RSS каналов

Форум

Открыть Ответить

Новые функции CMS и их производительность относительно версий PHP

11
11.01.2018 17:33:17
Miksar, в новой версии будет возможность отключения стилей. Поэтому не вижу большого смысла данной переменной в шапке сайта. Если что то упустил или не предусмотрел, с радостью выслушаю ваши замечания.

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
12
11.01.2018 19:23:23
Можно и отключать )

Здесь молодость бродит крылато, и старость не клонит голов.
4.2

4.2
13
11.01.2018 21:19:27
Предлагаю следующий вариант, убираем полностью переменную: {%HEAD%}
Вместо неё используем пакет: {%META%}, {%LINK%}, {%SCRIPT%}
Будет на мой взгляд удобно и в тоже время красиво Смайл - 13

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
14
12.01.2018 02:14:56
Это даже лучше. Практичнее. Сразу видно, что должно быть на выходе.

Здесь молодость бродит крылато, и старость не клонит голов.
4.2

4.2
15
12.01.2018 17:14:36
Вопрос на засыпку, какая функция поиска и замены на ваш взгляд быстрее: strtr() или str_replace()?

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
16
12.01.2018 18:04:09
strstr - вроде вхождение ищет? А если нужно просто определить наличие чего то в строке - то самая быстрая strpos()
str_replace() - на сколько я читал мануалы - это пока самая быстрая по замене... но нет регулярок )) зато с массивами работает.

Здесь молодость бродит крылато, и старость не клонит голов.
4.2

4.2
17
12.01.2018 23:06:5112.01.2018 23:18:56
Для большей наглядности, немного теории. Рассмотрим на наглядном примере структуру обработки информации процессором, в общем, так сказать в грубой форме без углубления в детали. В том числе, html, браузер, операционную систему и другие составляющие в учёт не берём.

И так, с низу в верх или с верха в низ, тут кому как угодно Смайл - 13

Путь прохождения данных

• CMS SLAED (система построения сайтов)
• PHP (язык программирования)
• Си (язык программирования)
• Язык ассемблера
• Машинный код
• Процессор сервера

Думаю понятно, что на все эти "промежуточные станции" уйдёт некоторое время (обработка информации), пока код в понятном для процессора языке дойдёт до него, обработается и вернётся к нам.

Ну а теперь сравнение актуальных фреймворков работающих на PHP 7.
Сравнение актуальных фреймворков работающих на PHP 7

Судя по графику, самый шустрый из них это Phalcon, который значительно превосходит всех своих конкурентов. Но стоит заметить, что он не является сто процентным PHP фреймворком, так как написан на языке C (Си) и работает в связки с ним. Для его использования от вас потребуется установка на сервер дополнительных плагинов, dll файлов для виндовс. Поэтому стандартный, среднестатистический хостинг отпадает.

При этом, хочу обратить ваше внимание! Phalcon в два раза медленнее PHP.
Это к тому, почему для быстрых проектов не стоит использовать фреймворки, так как изначально, PHP сам является таковым.

Теперь ответ на вопрос заданный ранее. Кто быстрее: strtr() или str_replace()?

Быстрее всех, как это не удивительно: str_replace()
Наглядный пример теста относительного сравнения. Поиск и замена текста отрабатывается в цикле, количество повторов: 1000

str_replace(array({tag1}, {tag2}), array($i, $i.$i), $str)
Время: 0.0070009231567383 сек., Память: 0.37043762207031 Мб.

str_replace(array_keys($value), array_values($value), $str)
Время: 0.0069999694824219 сек., Память: 0.37071990966797 Мб.

strtr($str, array({tag1} => $i, {tag2} => $i $i))
Время: 0.0090010166168213 сек., Память: 0.37267303466797 Мб.

Для тех кто хотел бы повторить тест сравнения скорости работы функций на своём сервере, выкладываю: Zip архив с файлом

P.S.: Код интуитивно понятен, думаю что объяснять детали не стоит. Если всё таки появятся вопросы, пишите, охотно отвечу.

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
18
13.01.2018 10:50:41
Так вот вопрос то у меня и возник - str_replace - для замены строки. strtr для обнаружения вхождения. точнее он даже отрезает то, что до указанного символа(или нескольких символов), если он есть. Зачем вообще их сравнивать?
А если к ним добавить strpos для сравнения?

Еще вопрос - какая задача для двух этих функций? Точнее где ты их хочешь применить?

Здесь молодость бродит крылато, и старость не клонит голов.
4.2

4.2
19
13.01.2018 10:56:1713.01.2018 11:04:03
а, блин, прошу прощения, я не разглядел название функции, там strtr, а я прочитал как strstr.

Честно говоря, последней как то не приходилось пользоваться, да и не встречал. Это наверное говорит о том, что эта функция юзабельнее и быстрее! )

Скачал тест и попробовал. Даже preg использовать быстрее получается, чем strtr)

Здесь молодость бродит крылато, и старость не клонит голов.
4.2

4.2
20
13.01.2018 11:00:5813.01.2018 11:01:15
Данные функции применяются в шаблонезаторе системы, для замены переменных в шаблонах.

Встал перед выбором, использовать конструкцию:

$value = array('{tag1}' => $i, '{tag2}' => $i.$i);
$a = str_replace(array_keys($value), array_values($value), $str);


или

$a = strtr($str, array('{tag1}' => $i, '{tag2}' => $i.$i));

Поэтому и тестировал производительность.

Данные методы, именно в том участке применения, в котором планировал их использовать, похожи по функционалу.

strtr - Преобразует заданные символы или заменяет подстроки
str_replace - Заменяет все вхождения строки поиска на строку замены

strpos - Возвращает позицию первого вхождения подстроки. Поэтому в нашем случае совершенно не подходит.

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3.24

3.24
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь