[{"data":1,"prerenderedAt":285},["ShallowReactive",2],{"navigation":3,"/docs/faq":96,"/docs/faq-surround":282},[4],{"title":5,"path":6,"stem":7,"children":8,"page":43},"Docs","/docs","docs",[9,25,44,64,80,88],{"title":10,"path":11,"stem":12,"children":13,"icon":24},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[14,16,20],{"title":15,"path":11,"stem":12},"Introduction",{"title":17,"path":18,"stem":19},"Quick start","/docs/getting-started/quick-start","docs/1.getting-started/2.quick-start",{"title":21,"path":22,"stem":23},"Running from source","/docs/getting-started/running-from-source","docs/1.getting-started/3.running-from-source","i-lucide-rocket",{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":43},"Configuration","i-lucide-settings-2","/docs/configuration","docs/2.configuration",[31,35,39],{"title":32,"path":33,"stem":34},"Adding a real database","/docs/configuration/adding-databases","docs/2.configuration/1.adding-databases",{"title":36,"path":37,"stem":38},"Customizing the image","/docs/configuration/customizing-the-image","docs/2.configuration/2.customizing-the-image",{"title":40,"path":41,"stem":42},"Common tuning strategies","/docs/configuration/common-tuning-strategies","docs/2.configuration/3.common-tuning-strategies",false,{"title":45,"path":46,"stem":47,"children":48,"icon":63},"Image variations","/docs/image-variations","docs/3.image-variations/1.index",[49,51,55,59],{"title":50,"path":46,"stem":47},"Choosing a variation",{"title":52,"path":53,"stem":54},"FPM-NGINX","/docs/image-variations/fpm-nginx","docs/3.image-variations/2.fpm-nginx",{"title":56,"path":57,"stem":58},"FrankenPHP","/docs/image-variations/frankenphp","docs/3.image-variations/3.frankenphp",{"title":60,"path":61,"stem":62},"FPM-Apache","/docs/image-variations/fpm-apache","docs/3.image-variations/4.fpm-apache","i-lucide-layers",{"title":65,"path":66,"stem":67,"children":68,"icon":79},"Benchmarks & Methodology","/docs/benchmarks","docs/4.benchmarks/1.index",[69,71,75],{"title":70,"path":66,"stem":67},"Methodology",{"title":72,"path":73,"stem":74},"Reading your results","/docs/benchmarks/reading-your-results","docs/4.benchmarks/2.reading-your-results",{"title":76,"path":77,"stem":78},"Testing from another machine","/docs/benchmarks/testing-from-another-machine","docs/4.benchmarks/3.testing-from-another-machine","i-lucide-flask-conical",{"title":81,"path":82,"stem":83,"children":84,"icon":87},"Community Results","/docs/community-results","docs/5.community-results/1.index",[85],{"title":86,"path":82,"stem":83},"Submitting your results","i-lucide-users",{"title":89,"path":90,"stem":91,"children":92,"icon":95},"FAQ","/docs/faq","docs/6.faq/1.index",[93],{"title":94,"path":90,"stem":91},"Frequently asked questions","i-lucide-circle-help",{"id":97,"title":94,"body":98,"description":274,"extension":275,"links":276,"meta":277,"navigation":278,"path":90,"redirect":276,"seo":279,"sitemap":280,"stem":91,"__hash__":281},"docs/docs/6.faq/1.index.md",{"type":99,"value":100,"toc":258},"minimark",[101,106,110,114,126,130,133,137,144,148,151,155,158,162,167,171,180,184,187,201,205,216,220,225,229],[102,103,105],"h2",{"id":104},"is-this-a-laravel-package-i-install","Is this a Laravel package I install?",[107,108,109],"p",{},"No. BenchKit is a standalone app you spin up, benchmark with, and then throw away. It never goes near your own codebase.",[102,111,113],{"id":112},"do-i-need-docker","Do I need Docker?",[107,115,116,117,121,122,125],{},"No. Clone the repo and run it anywhere Laravel runs, including Laravel Cloud. The benchmark tools arrive with ",[118,119,120],"code",{},"composer install",". See ",[123,124,21],"a",{"href":22},".",[102,127,129],{"id":128},"can-i-compare-two-runs","Can I compare two runs?",[107,131,132],{},"Yes. Run it once on each setup and open them side by side to see exactly what your change did.",[102,134,136],{"id":135},"do-my-results-survive-a-rebuild","Do my results survive a rebuild?",[107,138,139,140,143],{},"Mount a volume at ",[118,141,142],{},"storage/app/runs"," and they do. Without one, your history lasts as long as the container.",[102,145,147],{"id":146},"does-closing-the-tab-stop-my-run","Does closing the tab stop my run?",[107,149,150],{},"No. The run belongs to the server rather than to your browser. You can close the tab, reload the page, or open it on your phone and still be watching the same run. Any tab can stop it, and none of them can start a second one.",[102,152,154],{"id":153},"can-i-run-two-benchmarks-at-once","Can I run two benchmarks at once?",[107,156,157],{},"No, and that is deliberate. Two benchmarks competing for the same CPU would each measure the other. BenchKit holds the claim against a live process. If a run is somehow abandoned, the next one starts rather than waiting forever.",[102,159,161],{"id":160},"how-do-i-benchmark-frankenphp-worker-mode","How do I benchmark FrankenPHP worker mode?",[107,163,164,165,125],{},"Pull the FrankenPHP image and start it through Laravel Octane. The same image also runs in classic mode, which is what makes the comparison a fair one. See ",[123,166,56],{"href":57},[102,168,170],{"id":169},"can-i-benchmark-against-mysql-or-postgres","Can I benchmark against MySQL or Postgres?",[107,172,173,174,177,178,125],{},"Yes. Set the standard Laravel ",[118,175,176],{},"DB_*"," variables and BenchKit creates the tables it needs on its own. See ",[123,179,32],{"href":33},[102,181,183],{"id":182},"why-does-benchkit-say-some-of-my-cores-were-idle","Why does BenchKit say some of my cores were idle?",[107,185,186],{},"Under PHP-FPM one request occupies one worker for its whole duration. A pool smaller than your core count leaves cores with nothing to do, and the result understates the machine.",[107,188,189,190,193,194,197,198,200],{},"You can see it on the result: the ",[118,191,192],{},"/bench/io"," curve flattens at your worker count, onto a line drawn from ",[118,195,196],{},"workers ÷ delay",". Size the pool from memory rather than cores — a worker is a process holding a copy of your app — and see ",[123,199,40],{"href":41},", including a worked example where raising it made things worse.",[102,202,204],{"id":203},"can-i-run-the-load-test-from-my-own-machine","Can I run the load test from my own machine?",[107,206,207,208,212,213,215],{},"Yes — it is the default. The built-in ",[209,210,211],"strong",{},"External load test"," pairs a second machine with one command when you start the run, runs the standard measurements from it, and records the results into the run. For ad-hoc probing with your own tools, the four load test routes are open endpoints you can point oha at directly. See ",[123,214,76],{"href":77}," for both.",[102,217,219],{"id":218},"how-accurate-are-these-numbers","How accurate are these numbers?",[107,221,222,223,125],{},"They are most accurate when you compare two runs on the same machine, which is what BenchKit is built for. The limits that apply, and what to do about each, are covered in ",[123,224,72],{"href":73},[102,226,228],{"id":227},"where-do-i-get-help","Where do I get help?",[230,231,232,242,250],"ul",{},[233,234,235,241],"li",{},[123,236,240],{"href":237,"rel":238},"https://serversideup.net/discord",[239],"nofollow","Discord"," for community support",[233,243,244,249],{},[123,245,248],{"href":246,"rel":247},"https://github.com/serversideup/benchkit-laravel",[239],"GitHub"," for source, issues, and discussions",[233,251,252,257],{},[123,253,256],{"href":254,"rel":255},"https://serversideup.net/professional-support",[239],"Professional help"," for direct support from the team",{"title":259,"searchDepth":260,"depth":260,"links":261},"",2,[262,263,264,265,266,267,268,269,270,271,272,273],{"id":104,"depth":260,"text":105},{"id":112,"depth":260,"text":113},{"id":128,"depth":260,"text":129},{"id":135,"depth":260,"text":136},{"id":146,"depth":260,"text":147},{"id":153,"depth":260,"text":154},{"id":160,"depth":260,"text":161},{"id":169,"depth":260,"text":170},{"id":182,"depth":260,"text":183},{"id":203,"depth":260,"text":204},{"id":218,"depth":260,"text":219},{"id":227,"depth":260,"text":228},"Common questions about running and interpreting BenchKit.","md",null,{},true,{"title":94,"description":274},{"loc":90},"-ciAgs9mxCpPXUrTb0zYPRc-O7Jbet5Vr-WZJbHJwW4",[283,276],{"title":86,"path":82,"stem":83,"description":284,"children":-1},"How a run becomes a public gallery entry, and what gets published.",1787761543291]