Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

php perfect


ArtemPitov

Recommended Posts

@ArtemPitov Ранее уже пробовал пользоваться профайлером с этого форума, но возникли сложности с модулем сеоцмс от Марка, писал об этом в его теме: https://opencartforum.com/topic/45395-podderzhka-seo-cms-top-2-blog-novosti-otzyvy-galereya-formy/?do=findComment&comment=1145999

Предполагаю, и Ваш вариант столкнется с этой проблемой, но попробую, спасибо)

Надіслати
Поділитися на інших сайтах

13 минут назад, chukcha сказал:

Как вариант отключить сеопро
 и проверить время реакции

А где тогда расставить микротаймы для замера? До этого ставил в контроллере сеопро

Надіслати
Поділитися на інших сайтах

@chukcha тогда можно замерить время которое нужно на это все http://php.net/manual/ru/function.microtime.php хотя дебагер что я бросил меряет это все 

А вообще, большие файлы не только для сеопро обезболены, еще интересно убивают скорость 1000+ фото в одной папке 

Надіслати
Поділитися на інших сайтах

12 минут назад, chukcha сказал:

@ArtemPitov Это не совсем то
Тут нужно проанализировать на сколько влияет загрузка большого кеша на производительность, и имет ли смыл отказаться от кеширования в сеопро.

Анализировал, если товаров свыше 50k - кеширование надо убирать
Слишком большой кеш файл URL - в  будет (наблюдал и 100 Мб файлы кеша seo_pro, сами понимаете это 3.14)
Для того чтобы его json_decode уходит много ресурсов
На разных серверах на его декодирование может уходить уже секунды
Убираем кеш. Добавляем "кеширование" в переменные класса. Т е повторяющиеся на странице URL - кешируются

 

Надіслати
Поділитися на інших сайтах

1 minute ago, markimax said:

Анализировал, если товаров свыше 50k - кеширование надо убирать
Слишком большой кеш файл URL - в  будет
Для того чтобы его json_decode уходит много ресурсов
На разных серверах на его декодирование может уходить уже секунды
Убираем кеш. Добавляем "кеширование" в переменные класса. Т е повторяющиеся на странице URL - кешируются

 

Или пробовать делать кеширование с помощью Memcache(d) или Redis.

Надіслати
Поділитися на інших сайтах


5 минут назад, chukcha сказал:

@markimax напоминаю, речь пока про 1.5
там serilize()

Не важно serialize чуть быстрее json_decode, но тоже потенциальный тормоз

Надіслати
Поділитися на інших сайтах

36 минут назад, chukcha сказал:

в response

создать контсруктор
прописать время старта
после echo $ouput -

отсечь время.

Если все правильно понял, то сделал следующее: 

1) добавил в начало /library/response.php строчки

Спойлер

	private $log_seopro = 'seopro.log';

	public function __construct() {

		$this->log = new Log($this->log_seopro);

		if($_SERVER['REMOTE_ADDR'] == '111.222.44.33') {
	 		$this->log->write('seopro_start - ' . microtime(1));
	 	}
	}

 

2) и после echo $output;

Спойлер

		if($_SERVER['REMOTE_ADDR'] == '111.222.44.33') {
 			$this->log->write('seopro_finish - ' . microtime(1));			
 		}

 

После обновления стр товара получаю почему то несколько стартов и финишей:

Спойлер

2018-09-13 20:14:48 - start - 1536858888.5286
2018-09-13 20:14:48 - seopro_finish: 1536858888.6187
2018-09-13 20:14:49 - start - 1536858889.2361
2018-09-13 20:14:49 - start - 1536858889.2381
2018-09-13 20:14:49 - start - 1536858889.4857
2018-09-13 20:14:49 - seopro_finish: 1536858889.5091
2018-09-13 20:14:49 - start - 1536858889.8142 
2018-09-13 20:14:49 - seopro_finish: 1536858889.875
2018-09-13 20:14:51 - start - 1536858891.3308 

Почему их несколько отдельный вопрос (может виджеты от сеоцмс? что то похожее, мне показалось, я видел при включении профайлера). Но какой из какого вычитать, чтобы узнать реальное время, не могу понять. 

Змінено користувачем dexion
Надіслати
Поділитися на інших сайтах

36 минут назад, ArtemPitov сказал:

еще интересно убивают скорость 1000+ фото в одной папке 

В том числе для картинок? Может есть у кого решение/разработка, которое распределяет картинки по папкам? Сейчас все раскидано по производителям, но у одного производителя может быть 5к товаров, и картинок в папке соответственно под 20к.

 

32 минуты назад, vtkach сказал:

Или пробовать делать кеширование с помощью Memcache(d) или Redis.

Кстати, и правда, а при подключенном memcached/redis кэш сеопро с таким количеством товаров может имеет смыл оставить? Или все равно без него быстрее?

Надіслати
Поділитися на інших сайтах

1 минуту назад, vtkach сказал:

Тут есть решение для разброса по подпапкам фото: 

Там наверно только для новых товаров при добавлении? А что делать с уже существующими? При том, что часть из них проиндексирована.

Может можно допилить библиотеку image, чтобы она раскидывала картинки по папкам в кэше? Тогда добавлять новые товары можно будет прежним привычным для себя способом - по папкам производителей-брендов.

Надіслати
Поділитися на інших сайтах

1 час назад, ArtemPitov сказал:

еще интересно убивают скорость 1000+ фото в одной папке 

не совсем так

обращение к файлу от количества файлов в папках несущественно.
Существенно чтение этой папки, вот тут проблемы

Я как-то предлагал решение для ресайза
- создание отдельных директорий для кеша Width-Height/путь к картинке
Тем самым  уменьшая количество в папках

тут еще есть фишка, что знаю структур опенкарта, можно получить оригинальный файл, если кому-то это нужно
И для тех кто озабочен этим, то нужно делать md5 пути, брать первые 3-5 симовла и делать подпапки в кеше
пример Width-Height/AZXCFG/AZXCFGasdertt/имя файла

если что, то у меня есть такой модификатор

 

Надіслати
Поділитися на інших сайтах

12 минут назад, chukcha сказал:

тут еще есть фишка, что знаю структур опенкарта, можно получить оригинальный файл, если кому-то это нужно

У меня закрыт доступ к исходникам картинок в конфиге nginx, а кэш с водяными знаками. Это вроде бы удобней, чем md5

Надіслати
Поділитися на інших сайтах

36 минут назад, chukcha сказал:

обращение к файлу от количества файлов в папках несущественно.

постольку - поскольку, если 1к да, если 10к, для поиска нужного изображения нужно перелопатить и сравнить эти ~10к  

Надіслати
Поділитися на інших сайтах

28 минут назад, dexion сказал:

У меня закрыт доступ к исходникам картинок в конфиге nginx,

Ну.. это я написал как вариант

Надіслати
Поділитися на інших сайтах

Только что, ArtemPitov сказал:

постольку - поскольку, если 1к да,

Поиск ? А кто ищет?
толкьо  glob, scandir  и подобные

В твк.. все исключительно прямой доступ

Надіслати
Поділитися на інших сайтах

7 минут назад, chukcha сказал:

Поиск ? А кто ищет?
толкьо  glob, scandir  и подобные

В твк.. все исключительно прямой доступ

is_file file_exists

также вернуть 10к строк - это выделения памяти 

Надіслати
Поділитися на інших сайтах

2 минуты назад, chukcha сказал:

всегда боюсь таких утверждений..

:-D

Надіслати
Поділитися на інших сайтах

@ArtemPitov Для того чтобы понять , надо понимать как работает система файловых дескрипторов, что такое inode, какие файловые системы существуют, как происходит доступ к файлам.

Но не нужно придумывать или надумывать.

SELECT * FROM table WHERE id =1

и

SELECT * FROM table WHERE id =10000
практически одинаково по времени

Так же и обращение к к файлу
но там еще более запутано... Но время реакции практически не влияет на время лоступа

кроме того file_exists, is_file здесь также могут быть "оптимизированы" потому как что-то быстрее, на 10тысячную милисекунду

Если очень интересно откройте stdio.h

 

Надіслати
Поділитися на інших сайтах

16 минут назад, chukcha сказал:

кроме того file_exists, is_file здесь также могут быть "оптимизированы" потому как что-то быстрее, на 10тысячную милисекунду

нужно будет полазить по кору, кстати вот он https://github.com/php/php-src 

Надіслати
Поділитися на інших сайтах

@ArtemPitov на самом деде все закончится ядром операционки

или .. драйверами..
Не важно, важно то что доступ к файлу это не перебор по циклу.

 

Надіслати
Поділитися на інших сайтах

12 минут назад, ArtemPitov сказал:

нужно будет полазить по кору,

Давно я лазил по коду апачевского modrewrite, нужно было понять почему не работает LAST
и как работает REWRITECOND при сложных условиях

Желание похвальное, но ядро php это высокий уровень..
а надо спускаться ниже
 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.