!! Built-in optimization
* Every directory is scanned on every page load. Even though the overhead is not large, you should __remove all unused (uninstalled) packages__ from your server. You can add them back (and install them) later.
* Beginning with version 2, we have global __liberty caching__ for any parsed content. This dramatically reduces loading time and load on the server for such content. Visit: Aministration --> Liberty --> Liberty Settings
* Activate __gzip__ HTTP compression in Aministration --> Kernel --> Kernel Settings.

!! Tipps and tricks
* __((bitweaverPerformance#Tools|Install a PHP opcode caching mechanism))__ (see below)
* Disable all plugins and formats you don't need in Administration --> Liberty --> Plugins
* Make sure your [http://www.zoneedit.com/smtp.html|mail server] is working.
* Limit the __maximum numbers of listings__ in Aministration --> Kernel --> Kernel Settings. For instance, if only 20 blog postings are listed on the front page instead of 40, less database queries need to be done.
* __Limit and cache "side modules"__. In Aministration --> Themes, you can add modules to the left, right, header, or footer area. By default, these modules display 10 lines. By lowering this value, you safe on database queries. The same screen lets you cache them for a given time.

!! Other tipps and tricks
Yahoo's performance team names a dozen techniques for [http://developer.yahoo.com/performance/|improving web performance]. To test your bitweaver site against these recommendations, install their Firefox extension [http://developer.yahoo.com/yslow/|YSlow]. It will grade your page and list potential bottlenecks. Some of the recommendations, like using a "content delivery network", might not be for everyone. Some other techniques concern the handling of CSS, JS and HTML files. By creating an .htaccess file in your bitweaver directory, you can strive for an A in Headers and ETags: {code title=".htaccess"}
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 week"
FileETag none
{/code} The note "access plus 1 week" is quite arbitrary, some people recommend "access plus 1 year" or 2 years. This header can even be problematic! Its pros and cons are [http://developer.yahoo.net/blog/archives/2007/05/high_performanc_2.html|being discussed], as is [http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html|the ETags setting]. Example: When I called mybitweaver/kernel/admin/index.php, YSlow gave me an F and reported
{code title="before"}F (59), 207K, 52 HTTP Requests (Empty Cache), 52 HTTP Requests (Primed Cache){/code}
After creating the above mentioned .htaccess file, I got a C! Only the actual HTML file and one JS file were downloaded again, the other files didn't cost an HTTP request anymore:
{code title="after"}C (74), 207K, 52 HTTP Requests (Empty Cache), 2 HTTP Requests (Primed Cache){/code}

!! Template optimisation
* To optimize your custom theme, read our ((Speed optimisation|Speed optimisation research)), comparing bitweaver to selected other content management systems by analyzing their main pages for HTTP requests and load times, and listing possibilities to optimize them.

!! Tools
* Install a PHP opcode caching mechanism. This might be the most notable performance boost of all! It will drastically reduce PHP memory usage and improve execution time, sometimes as much as several 100 percent! Recommendations are __[http://eaccelerator.net/HomeUk|php-eaccelerator]__ (a maintained version of [http://turck-mmcache.sourceforge.net/|turck-mmcache]) or __[http://php.net/apc|APC - 'Alternative PHP Cache']__.
* System Administration Tool: [http://www.vanheusden.com/multitail/|MultiTail] - tail on steroids
* If you have a high traffic site, make sure you have an ((Advanced Apache Configuration for High Traffic Sites)).
* If you have access to the configuration files of your web server and database, consider [http://docs.moodle.org/en/Performance|this performance guide], written for a well-known PHP software called Moodle. It lists all of the tricks mentioned here, as well as some in-depth recommendations on your server's hardware, its operating systems, Apache, IIS, MySQL and more, of which much applies also to bitweaver.

!! PHP code optimization
* Use [http://www.php.lt/benchmark/phpbench.php|Fast Coding Habits].
* Allocate a large chunk of memory to php in your php.ini file.
* Install ImageMagick's Magickwand for better image handling.
* Install pecl fileinfo for better type checking on file uploads.

!! ((dbTuning: PostgresAdvocacy|Postgres))
Install the tablefunc contribution to achieve massive optimization of GatekeeperPackage security look ups. tablefunc has the Oracle'esque "connectby" function that will let you execute recurisve queries on a hierarchical table that has id/parent_id rows, ala the ))tiki_fisheye_gallery_map((. To install, make sure you have installed the postgresql-contrib rpm/deb/whatever, and execute something like this:
{code title="FedoraCore 3 command line" in="bash"}# psql foo < /usr/share/pgsql/contrib/tablefunc.sql{/code}
Then to your ))config_inc((.php, add: {code title="config_inc.php" in="php}define( 'POSTGRESQL_CONTRIB', TRUE );{/code}

!! Areas to investigate for Code Opimizations
** If writing code, see the [http://phplens.com/lens/adodb/docs-adodb.htm#speed|Tuning tips] and install the [http://adodb.sourceforge.net/#extension|ADODB C Extension]
* "Content Delivery Network" and Multisites
** since some browsers fetch files faster or more simultanously if located on different domains, if MultisitesPackage is installed (which means that more than one vhost links to the same bitweaver folder), Javascript or CSS or image files could be delivered from different domain names without being duplicated in the file system
Page History
30 Apr 2010 (07:36 UTC)
Lester Caine81.138.11.13627
Current • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source
View • Compare • Difference • Source