Skip to content

Commit

Permalink
Templating small overload benchmark for PHP 8.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
steevanb committed Dec 1, 2020
0 parents commit 695d773
Show file tree
Hide file tree
Showing 68 changed files with 21,136 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: '2.1'

jobs:
ValidateBenchmark:
docker:
- image: phpbenchmarks/benchmark-kit:4
working_directory: /var/www/benchmark
steps:
- checkout
- run:
name: entrypoint
command: entrypoint --nginx-as-service
- run:
name: "validate:benchmark"
command: "phpbenchkit validate:benchmark -vvv"

workflows:
version: '2.1'
BenchmarkKit:
jobs:
- ValidateBenchmark
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/.idea
/vendor
/composer.lock
23 changes: 23 additions & 0 deletions .phpbenchmarks/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
component:
slug: php
benchmark:
type: templating-small-overload
relativeUrl: /
sourceCode:
entryPoint: public/index.php
urls:
template: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php'
templatingLayout: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L6'
templatingBlocks: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/templates/layout/layout_start.php#L31'
templatingFunctions: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L8'
templatingMacros: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L432'
templatingEscapeStringHtml: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#856'
templatingEscapeStringJs: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#2877'
templatingVariables: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L5933'
templatingOutputRaw: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L5933'
templatingOutputUnknownVariables: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L6855'
templatingOutputMethodCalls: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L7277'
templatingIncludeTemplates: 'https://github.com/phpbenchmarks/php/tree/8.0.0_templating-small-overload_0/public/index.php#L9308'
coreDependency:
name: php
version: 8.0.0
15 changes: 15 additions & 0 deletions .phpbenchmarks/nginx/vhost.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
server {
listen ____PORT____;
server_name ____HOST____;
root ____INSTALLATION_PATH____/____ENTRY_POINT_FILE_PATH____;
location / {
try_files $uri /____ENTRY_POINT_FILE_NAME____$is_args$args;
}
location ~ ____ENTRY_POINT_FILE_NAME____(/|$) {
fastcgi_pass unix:/run/php/____PHP_FPM_SOCK____;
fastcgi_split_path_info ^(.+.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
20 changes: 20 additions & 0 deletions .phpbenchmarks/php/8.0/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .phpbenchmarks/php/8.0/initBenchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -e

# add commands to initialize benchmark: clear cache and logs, warm up cache etc
composer install --no-dev --classmap-authoritative --ansi
31 changes: 31 additions & 0 deletions .phpbenchmarks/php/8.0/php.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
; ----------------------------------------------------------------------------------------------------------------------
; This file will be added to PHP ini files loaded before benchmarking.
; Configure what you need here.
;
; /!\ Do NOT configure opcache.enable: it will be configured automatically.
; /!\ Do NOT configure opcache.preload and opcache.preload_user: it will be configured automatically. /!\
; ----------------------------------------------------------------------------------------------------------------------

; Examples of configuration you could change for your needs.

; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 1000000 are allowed.
;opcache.max_accelerated_files=10000

; If disabled, all PHPDoc comments are dropped from the code to reduce the
; size of the optimized code.
;opcache.save_comments=1

; A bitmask, where each bit enables or disables the appropriate OPcache
; passes
;opcache.optimization_level=0x7FFFBFFF

; Allows exclusion of large files from being cached. By default all files
; are cached.
;opcache.max_file_size=0

; Enables or disables opcode caching in shared memory.
;opcache.file_cache_only=0

; The OPcache shared memory storage size.
;opcache.memory_consumption=128
69 changes: 69 additions & 0 deletions .phpbenchmarks/php/8.0/preload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php

$sourceCodePath = __DIR__ . '/../../../';
$files = [
"$sourceCodePath/public/index.php",
"$sourceCodePath/src/blocks.php",
"$sourceCodePath/src/functions.php",
"$sourceCodePath/src/macros.php",
"$sourceCodePath/templates/layout_end.php",
"$sourceCodePath/templates/layout_start.php",
"$sourceCodePath/templates/templates/template1.php",
"$sourceCodePath/templates/templates/template10.php",
"$sourceCodePath/templates/templates/template11.php",
"$sourceCodePath/templates/templates/template12.php",
"$sourceCodePath/templates/templates/template13.php",
"$sourceCodePath/templates/templates/template14.php",
"$sourceCodePath/templates/templates/template15.php",
"$sourceCodePath/templates/templates/template16.php",
"$sourceCodePath/templates/templates/template17.php",
"$sourceCodePath/templates/templates/template18.php",
"$sourceCodePath/templates/templates/template19.php",
"$sourceCodePath/templates/templates/template2.php",
"$sourceCodePath/templates/templates/template20.php",
"$sourceCodePath/templates/templates/template21.php",
"$sourceCodePath/templates/templates/template22.php",
"$sourceCodePath/templates/templates/template23.php",
"$sourceCodePath/templates/templates/template24.php",
"$sourceCodePath/templates/templates/template25.php",
"$sourceCodePath/templates/templates/template26.php",
"$sourceCodePath/templates/templates/template27.php",
"$sourceCodePath/templates/templates/template28.php",
"$sourceCodePath/templates/templates/template29.php",
"$sourceCodePath/templates/templates/template3.php",
"$sourceCodePath/templates/templates/template30.php",
"$sourceCodePath/templates/templates/template31.php",
"$sourceCodePath/templates/templates/template32.php",
"$sourceCodePath/templates/templates/template33.php",
"$sourceCodePath/templates/templates/template34.php",
"$sourceCodePath/templates/templates/template35.php",
"$sourceCodePath/templates/templates/template36.php",
"$sourceCodePath/templates/templates/template37.php",
"$sourceCodePath/templates/templates/template38.php",
"$sourceCodePath/templates/templates/template39.php",
"$sourceCodePath/templates/templates/template4.php",
"$sourceCodePath/templates/templates/template40.php",
"$sourceCodePath/templates/templates/template41.php",
"$sourceCodePath/templates/templates/template42.php",
"$sourceCodePath/templates/templates/template43.php",
"$sourceCodePath/templates/templates/template44.php",
"$sourceCodePath/templates/templates/template45.php",
"$sourceCodePath/templates/templates/template46.php",
"$sourceCodePath/templates/templates/template47.php",
"$sourceCodePath/templates/templates/template48.php",
"$sourceCodePath/templates/templates/template49.php",
"$sourceCodePath/templates/templates/template5.php",
"$sourceCodePath/templates/templates/template50.php",
"$sourceCodePath/templates/templates/template6.php",
"$sourceCodePath/templates/templates/template7.php",
"$sourceCodePath/templates/templates/template8.php",
"$sourceCodePath/templates/templates/template9.php",
];

foreach ($files as $file) {
if (is_readable($file) === false) {
throw new \Exception('File "' . $file . '" is not readable.');
}

opcache_compile_file($file);
}
Loading

0 comments on commit 695d773

Please sign in to comment.