.. index:: Benchmarking LFS ================ Benchmarking LFS ================ This section describes how to benchmark LFS. Overview ========= The development buildout comes with ``lfs_bench``, a small application, which provides some tools to benchmark LFS. You can use it in case you want to optimize LFS in terms of speed. In case you want to development a new feature, please compare the versions with and without this feature and try to not slow down LFS. JMeter ====== 1. Install `JMeter `_ 2. Prepare the database:: $ bin/django lfs_init $ bin/django lfs_generate_content_for_benchmark 3. Start LFS * Start LFS in production mode, for instance with ``bin/django-gunicorn``. and a reverse proxy in front of it. In other words don't use the development server. * Set DEBUG to False 4. Start JMeter Make sure you start it from the buildout base directory (that's the same directory you start Django from):: $ /path/to/jmeter/bin/jmeter -t src/lfs_bench/lfs_bench/jmeter/lfs.jmx -p src/lfs_bench/lfs_bench/jmeter/user.properties 5. Execute the Testplan and check the result within ``Summary Report`` for instance. Apache Benchmark - ab ===================== 1. Prepare the database:: $ bin/django lfs_init $ bin/django lfs_generate_content_for_benchmark 2. Start LFS * Start LFS in production mode, for instance with ``bin/django-gunicorn``. and a reverse proxy in front of it. In other words don't use the development server. * Set DEBUG to False 3. Use ``ab``, for instance like that:: $ ab -n 1000 -c 20 http://localhost/product-1-1-1 4. Check the results. Python Profiling ================ The development buildout provides a middleware by default, which let you profile single requests. Just suffix the request with ``?prof`` in order to get profiling data, for instance:: http://localhost/product-1-1-1?prof See also: * `JMeter `_ * `Apache Benchmark - ab `_ * `Python stats reference `_