CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

06 December, 2023

I've been loving Benchmarking lately, but the Framework does this one quirky thing with the first result of a set. Specifically, the first return is always unusually high.

 Programing Coderfunda     December 06, 2023     No comments   

Lately, I've been spending time A/B benchmarking code against refactored versions assuming that both pieces of code pass their respective tests. One thing that always leaves me scratching my head is the way the first returned value of the Benchmark helper is always way higher than all other values. At first, I thought that this was due to some startup overhead in the framework, but I'm not so sure. Here's a test for you to try along with the result I got.

Here's the long-way-around code I played with for experimentation (each line is exactly the same):

php [ Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1] ];

Here's the result:

php [ 36.802083, 1.678583, 1.420791, 1.051042, 1.019792, 1.0015, 1.018708, 1.423625, 1.227666, 1.0715, 1.065666, 1.032791, 0.9855, 1.095708, 1.460583, 1.113666, ]

Weird right?

Here's another quirky example:

php $a = [ Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1] ]; $b = [ Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1], Benchmark::value(fn() => User::factory()->create())[1] ]; [$a,$b];

Result:

php [ [ 30.447542, 1.143333, 1.172375, 1.166459, 1.20575, 1.402584, 1.189042, ], [ 1.45775, 1.071958, 1.050291, 2.011417, 1.458583, 1.110292, 4.568708, ], ]

Methinks there be a ghost in the machine. submitted by /u/MuadDibMelange
[link] [comments]
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • How can I document types in a multidimensional array to fix type hinting?I have some template files that have default arguments defined at the top of each file. I can't get type hinting for these values to work correctly; i… Read More
  • How can I diff a directory for only files of a specific type?I have a question about the diff command if I want a recursive directory diff but only for a specific file type, how to do that? I tried using the e… Read More
  • How to get an actual type object with generic class?I get an error with Caused by: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.test.QueryOrderInfo bizContent is a json … Read More
  • Access log file not created in docker container for spring boot aplicationI have a Spring-Boot application that does not create an access log file of the embedded Tomcat server while running inside a docker container. But wh… Read More
  • If Sail isn't production ready.... why are we using it?New to Laravel, not new to docker. Been enjoying Sail in local development because it "just worked" but going to deploy to a server I see that it's no… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • SQL ORDER BY Keyword
      The SQL ORDER BY Keyword The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts ...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...
  • failed to load storage framework cache laravel excel
       User the export file and controller function  ..         libxml_use_internal_errors ( true ); ..Good To Go   public function view () : ...
  • AdminJS not overriding default dashboard with custom React component
    So, I just started with adminjs and have been trying to override the default dashboard with my own custom component. I read the documentatio...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Filament Is Now Running Natively on Mobile - 5/31/2025
  • A Blade-Only Starter Kit for Laravel 12 Projects - 5/30/2025
  • PHPVerse with Brent Roose - 5/30/2025
  • Verify Nested Relations Efficiently with Laravel's Enhanced relationLoaded Method - 5/25/2025
  • ElasticLens: Eloquent-Powered Elasticsearch for Laravel - 5/29/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda