LEOnidUKG

LEOnidUKG
Рейтинг
1776
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
CMS которая не умеет в 404 ошибку?
lungo #:

Многие не совсем приветствуют подобное действие, да и реальные посетители заходят под IPv6.

Нет, не заходят реальные посетители. Возможно через лет 5 вернёмся к этому вопросу.

А не проще убрать из DNS запись AAAA, где прописан IPv6? Да и отключить на хостинге для конкретного сайта поддержку этого IPv6?
Указанные ниже страницы не индексируются Google и не появляются в результатах поиска.
А они должны индексироваться и появляться в результатах поиска? т.е. это вам надо?

Ilya74 #:

Потому что логотипы являются в данном случае торговой маркой и вам правообладатель не давал право на их использование. Где хранится логотип не имеет никакого значения, важно то, что на вашем сайте логотип размещён без разрешения.

Думаю лучше тут почитать: https://journal.tinkoff.ru/chuzhoy-logo/

Более всё расписано подробно. 

VDS, PHP 7.4

Вообще бред, регулярки c i быстрее, при чём всегда.

0
90000000
90000000
str_replace: 0.37781500816345
preg_replace: 0.52735304832458
preg_replace i: 0.49129390716553


Другой VDS, PHP 7.4

Не сказал бы, что сильная быстрее  str_replace, раз 10 проверил

0
90000000
90000000
str_replace: 0.25185203552246
preg_replace: 0.35379409790039
preg_replace i: 0.35928606987


Другой VDS, PHP 8.1

На доли доли быстрее.

0
90000000
90000000
str_replace: 0.34500694274902
preg_replace: 0.44255208969116
preg_replace i: 0.4721040725708


Windows 10. Перезагрузил свой apache, скорости в разы упали сразу. Весьма странно наблюдать такую регрессию. Возможно что-то уже сама ОС кэширует у себя.

25 000 - циклов

0
90000000
90000000
str_replace: 0.15765905380249
preg_replace: 0.35786294937134
preg_replace i: 0.35242486000061


250 000 - циклов, уже не такие страшные показатели.

0
90000000
90000000
str_replace: 15.019841909409
preg_replace: 19.820614099503
preg_replace i: 19.533653974533


Самое смешное, что даже мой же тест из первого топика стал быстрее для str_replace 🤣

preg_replace: 0.2176


preg_replace i: 0.2169
str_replace: 0.0322

В песочнице вообще можно получить интересные результаты:

https://onlinephp.io/c/547d4

PHP 8.1

0

90000000

90000000

str_replace: 0.77543902397156

preg_replace: 1.2858679294586

preg_replace i: 0.83956909179688


PHP 8.1

0

90000000

90000000

str_replace: 0.63856887817383

preg_replace: 0.66068816184998

preg_replace i: 0.64235186576843

PHP 7.3

0

90000000

90000000

str_replace: 0.55451011657715

preg_replace: 0.57687377929688

preg_replace i: 0.58461213111877

А вот уже 7.0

0

90000000

90000000

str_replace: 0.48414707183838

preg_replace: 2.1467258930206

preg_replace i:

Fatal error: Maximum execution time of 3 seconds exceeded in /home/user/scripts/code.php on line 65

Вот и нашли мы точку отправную, когда всё было плохо. Тогда больше склоняюсь к ответу от vitor, что:

Если тестить на 7.2, то видно как скорость str_replace осталась ~ на прежнем уровне, а preg_replace выросла почти втрое.

Тем самым суть в том, что начиная с 7.2 можно использовать регулярки без сильной просадки в производительности. И чем новее версия PHP, тем меньше будет уже разница.

Владимир #:
@ini_set('pcre.jit',0);
@ini_set('pcre.backtrack_limit', 90000000);// BY DEFAULT IS 100000
@ini_set('pcre.recursion_limit', 90000000);// BY DEFAULT IS 100000

<?php

@ini_set('pcre.jit',0);

@ini_set('pcre.backtrack_limit', 90000000);// BY DEFAULT IS 100000

@ini_set('pcre.recursion_limit', 90000000);// BY DEFAULT IS 100000

echo ini_get ('pcre.jit');

echo "\r\n";

echo ini_get ('pcre.backtrack_limit');

echo "\r\n";

echo ini_get ('pcre.recursion_limit');

echo "\r\n";

0
90000000
90000000
str_replace: 0.16834807395935
preg_replace: 0.058679103851318
preg_replace i: 0.066208839416504

PHP Version 8.1.17


Давайте тест до 1000 уменьшим:

5000000000
str_replace: 0.0019919872283936
preg_replace: 0.001162052154541
preg_replace i: 0.0012760162353516

А можно и до 100

5000000000
str_replace: 0.00018906593322754
preg_replace: 0.00011491775512695
preg_replace i: 0.00012588500976562
Владимир #:


@ini_set('pcre.backtrack_limit', 5000000);

<?php

@ini_set('pcre.backtrack_limit', 5000000);

echo ini_get ('pcre.backtrack_limit');

echo "\r\n";

5000000
str_replace: 0.15876603126526
preg_replace: 0.064617156982422
preg_replace i: 0.066633939743042


Могу и больше:

5000000000
str_replace: 0.15234684944153
preg_replace: 0.060786962509155
preg_replace i: 0.066731929779053
Владимир #:
а вы в своём "тесте" долбите 25 тысяч-1 раз не изменяющуюся переменную

Так это в вашем случаи вы долбите не изменяющуюся переменную:

$thisoutput2=preg_replace('@<div class="tm-karma__text">@',$replace,$thisoutput.$i);

$thisoutput2 нигде же не используется. Я же переписываю каждый раз текущую переменную, эмулируя реальную работу кода.

на вашем месте я бы просто признал свою ошибку и не вставал в позу, это плохое качество - не уметь признавать ошибки

ого, советник по жизни пришёл. То то думаю я в жизненном  тупике, не знаю, что мне делать 🤣

Всего: 31516