wiki.techinc.nl/serialized
Tim Starling 43b2fb56b6 Merged localisation-work branch:
* Made lines from initialiseMessages() appear as list items during installation
* Moved the bulk of the localisation data from the Language*.php files to the Messages*.php files. Deleted most of the Languages*.php files.
* Introduced "stub global" framework to provide deferred initialisation of core modules. 
* Removed placeholder values for $wgTitle and $wgArticle, these variables will now be null during the initialisation process, until they are set by index.php or another entry point.
* Added DBA cache type, for BDB-style caches. 
* Removed custom date format functions, replacing them with a format string in the style of PHP's date(). Used string identifiers instead of integer identifiers, in both the language files and user preferences. Migration should be transparent in most cases.
* Simplified the initialisation API for LoadBalancer objects.
* Removed the broken altencoding feature.
* Moved default user options and toggles from Language to User. Language objects are still able to define default preference overrides and extra user toggles, via a slightly different interface.
* Don't include the date option in the parser cache rendering hash unless $wgUseDynamicDates is enabled.
* Merged LanguageUtf8 with Language. Removed LanguageUtf8.php. 
* Removed inclusion of language files from the bottom of Language.php. This is now consistently done from Language::factory(). 
* Add the name of the executing maintenance script to the debug log. Start the profiler during maintenance scripts.
* Added "serialized" directory, for storing precompiled data in serialized form.
2006-07-26 07:15:39 +00:00
..
Makefile Merged localisation-work branch: 2006-07-26 07:15:39 +00:00
README Merged localisation-work branch: 2006-07-26 07:15:39 +00:00
serialize-localisation.php Merged localisation-work branch: 2006-07-26 07:15:39 +00:00
serialize.php Merged localisation-work branch: 2006-07-26 07:15:39 +00:00
Utf8Case.ser Merged localisation-work branch: 2006-07-26 07:15:39 +00:00

This directory contains data files in the format of PHP's serialize() function. 
The source data are typically array literals in PHP source files. We have 
observed that unserialize(file_get_contents(...)) is faster than executing such 
a file from an oparray cache like APC, and very much faster than loading it by 
parsing the source file without such a cache. It should also be faster than 
loading the data across the network with memcached, as long as you are careful 
to put your MediaWiki root directory on a local hard drive rather than on NFS. 
This is a good idea for performance in any case.

To generate all data files:

   cd /path/to/wiki/serialized
   make

This requires GNU Make. At present, the only serialized data file which is 
strictly required is Utf8Case.ser. This contains UTF-8 case conversion tables, 
which have essentially never changed since MediaWiki was invented. 

The Messages*.ser files are localisation files, containing user interface text 
and various other data related to language-specific behaviour. Because they 
are merged with the fallback language (usually English) before caching, they 
are all quite large, about 100KB each at the time of writing. If you generate 
all of them, they take up about 15 MB. Hence, I don't expect we will include 
all of them in the release tarballs. However, to obtain optimum performance, 
YOU SHOULD GENERATE ALL THE LOCALISATION FILES THAT YOU WILL BE USING ON YOUR 
WIKIS.

You can generate individual files by typing a command such as:
   cd /path/to/wiki/serialized
   make MessagesAr.ser

If you change a Messages*.php source file, you must recompile any serialized 
data files which are present. If you change MessagesEn.php, this will 
invalidate *all* Messages*.ser files. 

I think we should distribute a few Messages*.ser files in the release tarballs,
specifically the ones created by "make dist".