[benchmarks] GSoC report

[email protected] (Alexander Hjalmarsson) Sun, 19 Jul 2009 12:46:08 +0200
Newsgroups php.gsoc
Message-ID <[email protected]>
--001636c5a7369faf1e046f0cba1f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi
It's been a very long time ago since I wrote the last gsoc report from my
project, and I apologize for that. During my last report, I was about mid
way of creating the cli version of the benchmarking. Currently the benchmark
has the following tests (not counting the micro-tests):
crypto-aes
crypto-md5
crypto-rsa (just called crypto in the test dir)
deltablue
j4p5
raytrace
richards
whirl

And the features that are available are mainly
* The normal benchmark that just executes the tests and measures the time
* Memory usage, a feature that checks the memory usage of all tests
(individually and summary) using the linux SMAPS file in /proc/pid/smaps
* Cachegrind usage that runs the tests with the valgrind tool cachegrind and
returns the output of branch mispredictions, cache misses, etc.
* Comparison between runs. The user can compare the runs made from the same
tool.

There is a small documentation available at the scratcpad:
http://wiki.php.net/doc/scratchpad/benchmark for the CLI-bench.

There's still some things that needs to be done and added:
Hardware counters using papiex
Better description of the cachegrind results & some kind of scoring system
for these runs.
A bug on the crypto test (doesn't work on all php versions)
and some more fixes and such.

Those things are missing and will be added in the future, however I've begun
on the second part of schedule now which involves web applications
benchmarking.

We have discussed about the web app benchmarking and found out that
deploying VM's is what we think the best solution. That way, we get an easy
way to start the benchmarking and perhaps a good framework of adding new
applications to the suite.

We're using XEN as the engine for the virtualizations and currently I've
made a script that can deploy three machines (one client that performs the
benchmark, one web server and one database server). The client will hold
some tool that can calculate requests per second on user specific urls.

The first application that I'm going to add is phpBB3, which would be a
little bit easier then apps like SugarCRM, and therefore it could be a good
idea to start with that. I've just started to add this application and I
don't have that many comments on it yet :)


If anyone have any further questions of what I've made or just about
anything, just ask me. And once again, I'm sorry that I have written so few
reports.

Best regards
Alexander

--001636c5a7369faf1e046f0cba1f--