Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: php-timer

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Perun
Отправлено: 18 Сентября, 2020 - 18:09:58
Post Id


Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




Собственно вопрос про вышеуказанную библиотеку.

PHP:
скопировать код в буфер обмена
  1.  
  2. require __DIR__ . '/vendor/autoload.php';
  3.  
  4. use SebastianBergmann\Timer\ResourceUsageFormatter;
  5. use SebastianBergmann\Timer\Timer;
  6. $timer = new Timer;
  7. $timer->start();
  8. foreach (\range(0, 100000) as $i) {
  9.     // ...
  10. }
  11. print (new ResourceUsageFormatter)->resourceUsage($timer->stop());
  12.  


Тут цикл только для того, чтобы создать видимость какой-то работы?

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

Или этот цикл для чего то другого?

Ну и про форму записи самого цикла. Первый раз вижу аргумент foreach со слешем. Это я так понимаю. равнозначно предварительной инициализации массива для перебора?:

PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = range(0, 100000);
  3. foreach ($arr as $i) {
  4.     // ...
  5. }
  6.  

(Добавление)
И разница с этим непонятна:
Duration since PHP Startup (using unreliable $_SERVER['REQUEST_TIME_FLOAT'])
PHP:
скопировать код в буфер обмена
  1. require __DIR__ . '/vendor/autoload.php';
  2.  
  3. use SebastianBergmann\Timer\ResourceUsageFormatter;
  4.  
  5. foreach (\range(0, 100000) as $i) {
  6.     // ...
  7. }
  8.  
  9. print (new ResourceUsageFormatter)->resourceUsageSinceStartOfRequest();


Имеется в виду, что в первом случае исчисляется время от запуска $timer->start(); до конца скрипта, а во втором случае начало отмеряется от запуска скрипта?
 
 Top
LIME
Отправлено: 18 Сентября, 2020 - 19:30:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




по моему тут многое должно быть очевидно само собой
Perun пишет:
вместо этого цикла поместить код, который оценивается?
да
Perun пишет:
Или этот цикл для чего то другого?
нет
Perun пишет:
foreach со слешем
просто корневой namespace, функции тоже их используют и чтобы случайно не вызвать клиентскую(твою) ф-цию он уточнил что это та самая стандартная пыховская range
Perun пишет:
а во втором случае начало отмеряется от запуска скрипта?
видимо да

библа довольно простая и не дает многих метрик
и использовать неудобно - надо постоянно лезть с изменениями в код
есть поинтереснее решение https://habr[dot]com/ru/company/badoo/blog/430722/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB