Дело в том, что memory_get_usage показывает объём используемой памяти в текущий момент. У нас тестируемым является колбэк, который запускается, использует какое-то количество памяти, потом завершается, и в этот момент объём памяти высвобождается, поэтому в результате колбэка мы видим ноль.
Вариантом является тестирование через memory_get_peak_usage, так как тут мы увидим не текущее, а максимальное пиковое потребление.
Остановился в решении на том, что нужно сбрасывать максимальное потребление между вызовами. И такой метод есть: memory_reset_peak_usage, но он появляется только в php8.2, поэтому внедрять его сейчас в библиотеку наверное рановато. А другого способа сбрасывать я не нашёл.
Помню на курсе педагогики про малышей нам рассказывали, в первые годы жизни ребёнка его органы, мышцы и области мозга развиваются последовательно с точностью до недель, на что влияет наличие внешних факторов, например если 3-4 месяц жизни ребёнка приходится на лето и малыш получает больше солнца и витамина D, то сильнее развиваются определённые направления. Тут же проводили параллели со знаками зодиака, что описанная в них специфика характера разных знаков как раз и обуславливается календарным месяцем, когда у ребёнка протекал тот этап развития, который влияет на эту черту характера.
Признаюсь, отношусь скептически к этой теории, так как знаки зодиака в разных широтах одинаковые, а климат разный.
Пс: теперь я знаю почему не стал футболистом, месяц не тот!
Это решение не про бенчмарки, на сколько я понял автора, а про "сравнить мои решения между собой" по времени на глазок и выявить явного лидера. Даже "winner/loser" как бы намекают на несерьёзность :)
Если бы мне нужно было сравнение в изолированной среде с нормальным распределением, замерами памяти, сети и io, я бы выбрал другое решение, и потратил бы на него больше времени.
Минусы бывают часто полезны. Я не в восторге от анонимной неконструктивной несодержательной критики. Хочешь поставить минус - будь добр напиши хотябы 140 символов осмысленного текста. Ладно уж, анонимно, но с потенциальной пользой.
А про контент - сложно разделить на одном ресурсе прожжёных технарей и остальную околомаркетинговую плеяду. Разве что завести маркер для истинно технарских статей, готовых к строгой критике придирчивых цензоров.
В качестве отличного API могу предложить посмотреть что сделали ребята из Kinescope, не рекламы ради, а потому что помню какое получал удовольствие, реализовывая его у себя: всё очень логично, просто, а главное всё работает и соответствует доке.
Дело в том, что
memory_get_usageпоказывает объём используемой памяти в текущий момент. У нас тестируемым является колбэк, который запускается, использует какое-то количество памяти, потом завершается, и в этот момент объём памяти высвобождается, поэтому в результате колбэка мы видим ноль.Вариантом является тестирование через memory_get_peak_usage, так как тут мы увидим не текущее, а максимальное пиковое потребление.
Мои изыскания можно посмотреть тут:
https://github.com/dekmabot/runtime-comparison/blob/test-memory/src/Metrics/Memory.php
Остановился в решении на том, что нужно сбрасывать максимальное потребление между вызовами. И такой метод есть: memory_reset_peak_usage, но он появляется только в php8.2, поэтому внедрять его сейчас в библиотеку наверное рановато. А другого способа сбрасывать я не нашёл.
Помню на курсе педагогики про малышей нам рассказывали, в первые годы жизни ребёнка его органы, мышцы и области мозга развиваются последовательно с точностью до недель, на что влияет наличие внешних факторов, например если 3-4 месяц жизни ребёнка приходится на лето и малыш получает больше солнца и витамина D, то сильнее развиваются определённые направления. Тут же проводили параллели со знаками зодиака, что описанная в них специфика характера разных знаков как раз и обуславливается календарным месяцем, когда у ребёнка протекал тот этап развития, который влияет на эту черту характера.
Признаюсь, отношусь скептически к этой теории, так как знаки зодиака в разных широтах одинаковые, а климат разный.
Пс: теперь я знаю почему не стал футболистом, месяц не тот!
Если не запустится, скажут пошутили
Это решение не про бенчмарки, на сколько я понял автора, а про "сравнить мои решения между собой" по времени на глазок и выявить явного лидера. Даже "winner/loser" как бы намекают на несерьёзность :)
Если бы мне нужно было сравнение в изолированной среде с нормальным распределением, замерами памяти, сети и io, я бы выбрал другое решение, и потратил бы на него больше времени.
Простой и полезный скрипт, спасибо, часто провожу подобные тесты на коленке, взял на вооружение.
Столкнулся с округлением на маленьких значениях, попробую предложить pr, возможно с
show($precision), округляя уже на этапе вывода статистики.Та приятная часть разработки, на которую обычно не хватает времени.
Видимо, нам всем показалось.
Или как google wave, даже лого похож
Доступно только на Windows, MacOS и ChromeOs
А прототипируете в команде единомышленников? Потому что действительно "время разрабов-одиночек прошло".
Выжимка: java/kotlin, c#, c++, python, go, react/vue/angular, devops, data-science, scrum-masters, it hr.
Зачем вы всем рассказали, что проектировать может и обычный инженер, а не только специально обученный сертифицированный Нострадамус)
Обсуждения минусов я не предлагал, только лишь сопроводительный текст что можно сделать иначе. Думаю, до обсуждения критики мы пока не доросли)
Минусы бывают часто полезны. Я не в восторге от анонимной неконструктивной несодержательной критики. Хочешь поставить минус - будь добр напиши хотябы 140 символов осмысленного текста. Ладно уж, анонимно, но с потенциальной пользой.
А про контент - сложно разделить на одном ресурсе прожжёных технарей и остальную околомаркетинговую плеяду. Разве что завести маркер для истинно технарских статей, готовых к строгой критике придирчивых цензоров.
Этому багу несколько лет, и он был очень удобным)
Надо же попробовать чтобы понять. Я вот попроовал, понял не моё, теперь занимаюсь тем что нравится. Может однажды захочется попробовать ещё)
А зачем вы сравниваете null с boolean-значениями?
Null идеально подходит для обозначения отсутствия внешней связи. Используйте его по назначению, и тьма рассеется.
Ах этот дивный виртуальный мир.
В качестве отличного API могу предложить посмотреть что сделали ребята из Kinescope, не рекламы ради, а потому что помню какое получал удовольствие, реализовывая его у себя: всё очень логично, просто, а главное всё работает и соответствует доке.
https://documenter.getpostman.com/view/10589901/TVCcXpNM
А уже, правда через сторонний антиспам. Но вот как отрубить все смс - не нашёл. Ну и отдельная графа за звонки+смс в тарифе оператора - осталась.