Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Kumbiaphp #10

Merged
merged 4 commits into from
Jul 21, 2023
Merged

Add Kumbiaphp #10

merged 4 commits into from
Jul 21, 2023

Conversation

joanhey
Copy link
Contributor

@joanhey joanhey commented Jul 20, 2023

No description provided.

@myaaghubi myaaghubi changed the base branch from main to dev July 20, 2023 18:08
@myaaghubi
Copy link
Owner

I'll check your files as soon as possible

@joanhey
Copy link
Contributor Author

joanhey commented Jul 20, 2023

I made some changes, in the bash files.

rm -rf !("_benchmark") don't work in bash from all OS and virtualizations.
You need to add shopt -s globstar first, that is not correct to have it always so.
In my debian didn't work the clean.sh, so I think that will happen the same to other people:
./_benchmark/clean.sh: 2: ./_benchmark/clean.sh: Syntax error: "(" unexpected

In update.sh I clean it
composer update --no-dev --optimize-autoloader
We can use --no-dev --optimize-autoloader in install and update.
The only that don't permit --optimize-autoloader is create-project, but still permit --no-dev.

@myaaghubi
Copy link
Owner

You can't use it like ./_benchmark/clean.sh instead use bash clean.sh -t kumbiaphp-1.1

@myaaghubi myaaghubi merged commit 8ed717b into myaaghubi:dev Jul 21, 2023
@joanhey joanhey deleted the kumbia branch July 21, 2023 09:22
Copy link
Contributor Author

@joanhey joanhey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the last /index to have a fair bench. I understand to add it again.

But in a benchmark the length of the response and URL is important. The response need to be exactly the same length. In this case the response is 33b, 12b from the "Hello World!" and the rest from the output data. And in reality we need to check also the length of the headers.

The top performers in this bench, don't use a public dir in the URL.
Siler, Fatfree, Slim, ... they don't have a default public dir.
So the index.php is created inside the framework dir, not inside a public dir.

URLs:
url="$base/$fw/index.php/hello/index"
url="$base/$fw/public/index.php/hello/index"
url="$base/$fw/default/public/index.php/hello/index"
...
a part of the length of the framework name, that also the top performers is shorter than the rest.

In some cases in this bench, the length difference of the URL is the same that the response.

We need to include the index.php, inside a public dir for the microframeworks that don't have it (also the pure-php), to have a better fair play.
In a real situation, the server will point directly to the public dir from any full stack framework.

PD: it's easily demonstrable the impact of a large URL vs a shorter one in a benchmark.

@myaaghubi
Copy link
Owner

Oh no! Considering the minimum overhead minimum bootstrap cost, the diff between frameworks is much more than that gets affected by the length of URLs! A very long URL (not public/) can be more visible, but not enough to make a change on the results table.
I considered the default for each framework, however, that is a good idea to have a public/ dir for all of them as you mentioned so if you are interested feel free to send a pr

@joanhey
Copy link
Contributor Author

joanhey commented Jul 22, 2023

Added the PR #13

@joanhey
Copy link
Contributor Author

joanhey commented Jul 22, 2023

Woow 👍
You published the new data with Kumbia !!!
For a lot of years, I didn't test it without OPCache, but the results are very good.

The difference with the Kenjis bench (from 1.0-dev to 1.1.5), the most important changes for the performance are:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants