kraken-php / framework

Asynchronous & Fault-tolerant PHP Framework for Distributed Applications.
http://kraken-php.com
MIT License
1.12k stars 59 forks source link

Benchmark source code? #37

Closed nazar-pc closed 8 years ago

nazar-pc commented 8 years ago

I'm curious about performance. I'm also developing framework that can work as HTTP server and as WebSockets server, but typical https://github.com/kenjis/php-framework-benchmark doesn't support such configurations. It also seems that you compare to other frameworks that are not running under something like ReactPHP (which some of them are capable of).

Would you like to share your setup and benchmark source code? Didn't found it in this repo, in other repos of organization and on the website.

khelle commented 8 years ago

Thank you for the shown interest. I would like to make a note here, that Kraken PHP is not a HTTP / WS focused framework. Its main point is to provide API for creating multi-threaded, multi-processed apps using agent-based architecture. The HTTP / WS component is only an addition. The benchmark on the main page is based on HTTP and WS because it is the only thing that can be easily compared to standard PHP approach of creating apps and also to node.js. Unfortunately I no longer have all the configurations used there, as you can see the benchmark is quite old. I am hoping to update and revamp it as soon as I have some spare time. The only thing I am able to share with you is the methodoloy and configuration options used.

Scenario used:

The benchmark settings:

Sorry, for not being able to help you more.

nazar-pc commented 8 years ago

Thanks for quick answer! I understand that the purpose is much wider, but HTTP is quite common too, so benchmark makes sense. As for future update I'd like to also see comparison with ReactPHP and alternatives (we all now PHP is not that slow, especially comparing to Node.js:)) as well as not disabling opcache, because it is useless in real world.

Do you remember which tool was used (ab, wrk, etc.) and what concurrency settings and number of threads/processes?

I was hoping that you did a fork so that I can also reuse it:) But maybe we can create something generic for such tests too?

P.S. Kraken is one of my favorite ships in https://star-conflict.com/ 😄

khelle commented 8 years ago

Kraken is quite new, at least for the public access, so many additional things and tests will be added in, I hope, not so far future. I am aware of one project already making react and kraken performance testing. If they tell me their results I will publish them on the official webiste. Right now, I can only theoretize. The opcache on some configurations creates memory allocation failures with pthreads, and that's why it was disabled. For testing I have used ab.

I would like to see these kind of tests standarized for async PHP frameworks too.

Thank you for kind words.

nazar-pc commented 8 years ago

Awesome! Thanks for the info, and good luck with this promising project!

Jurigag commented 8 years ago

Well im guessing if you would create this in zephir you would get something around 10k instead of 6k. But still nice job.

Koc commented 8 years ago

+1 for comparation with reactphp

Golpha commented 8 years ago

I strongly recommend to implement the following measurements into the benchmark:

Jurigag commented 8 years ago

Instead of reactphp better compare it with php-pm https://github.com/php-pm/php-pm