Re: performance criteria on DEFINE()
| From: | Andy | Date: | Fri, 21 Apr 2006 14:02:25 +0000 |
| Subject: | Re: performance criteria on DEFINE() | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-234489@lists.php.net to get a copy of this message | ||
Thanks for the suggests.
I will have to make some tests to see what will happen, especially how fast. I will post after that my opinion.
Regards,
Andy.
----- Original Message ----- From: "Jochem Maas" <jochem@iamjochem.com>
To: "Andy" <frum@ar-sd.net>
Cc: <php-general@lists.php.net>
Sent: Friday, April 21, 2006 3:52 PM
Subject: Re: [PHP] performance criteria on DEFINE()
Andy wrote:Hi, We have a big multilanguage project. For a while we used gettext to translate the pages, but we gave up on this because of many problems. Out solution is to create a file for each language which includes the "label" definitions. for ex: define("LABEL1", "label 1"); define("LABEL2", "label 2"); etc... Now, one of this file can contain more than 2000 defines and we make a calculation that we will reach 8000 in 2 years. I made some testing(generated many label) in including these files into the project it seemed to work fine. I don't know how php handles these defines(memory usage, CPU etc) so the question is: how much affects the performace the inclusion of a lot of defines???creating constants is _very_ slow... if gettext is too much hassle (I can understand that ;-) it's a pity, but you have the alternative of using an array: $Lang = array( 'LABEL1' => 'hallo!', // etc ); OR install APC and write a routine that uses apc_define_constants() (not on every request obviously - well it will becomne obvious when you read up on apc and that function in particular) and apc_load_constants(). which means you can still use define() and not suffer the speed hit - although be prepared to use up a little RAM :-). note that although this means you will use the constants in your app the definition of the LABEL=>text pairs will be an array if you go the APC route. http://php.net/apc ps - the info on constants and apc is regurgitation of advice/info coming direct from Rasmus. I have never tested it, I assume he knows what he's talking about (otherwise why would he bother to write apc_load_constants()/apc_define_constants()?) pps - use single quotes for the __minimal__ decrease in processing that the skipping of string interpolation causes.Andy.