<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webburners &#187; declare it static</title>
	<atom:link href="http://www.webburners.com/tag/declare-it-static/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webburners.com</link>
	<description>We Burn the web with our expertise</description>
	<lastBuildDate>Thu, 08 Apr 2010 12:53:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Most importants tip to fast up php script</title>
		<link>http://www.webburners.com/2009/04/important-tips-php/</link>
		<comments>http://www.webburners.com/2009/04/important-tips-php/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 03:26:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech Articles]]></category>
		<category><![CDATA[$row[’id’]]]></category>
		<category><![CDATA[apache's mod_deflate]]></category>
		<category><![CDATA[Avoid magic function]]></category>
		<category><![CDATA[declare it static]]></category>
		<category><![CDATA[free memory]]></category>
		<category><![CDATA[magic function in php]]></category>
		<category><![CDATA[PHP sciprt performance]]></category>
		<category><![CDATA[require expensive in php]]></category>
		<category><![CDATA[static function in php]]></category>
		<category><![CDATA[strncasecmp]]></category>
		<category><![CDATA[str_replace]]></category>

		<guid isPermaLink="false">http://www.webburners.com/?p=251</guid>
		<description><![CDATA[static function in php increase performance , string concatenation is bettter , avoid magic functions and require is quite expensive in php, use full path instead of php os path and dont put loops in infinite continueity , use some limits, php string function are much better than regular experssion in php.


]]></description>
			<content:encoded><![CDATA[<p>&lt;!&#8211; 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 	&#8211;&gt;</p>
<p style="margin-bottom: 0cm;">Summary: <strong>static function</strong> in php increase performance , <strong>string concatenation</strong> is bettter , avoid magic functions and require is quite expensive in php, use full path instead of php os path and dont put loops in infinite continueity , use some limits, php string func<em>tion are much better than regular experssion in php.</em></p>
<p style="margin-bottom: 0cm;">
<ol>
<li>
<p style="margin-bottom: 0cm;">Use <strong>full paths in includes</strong> and requires, it take less time spent on Manipulate the absolute 	Paths.</p>
</li>
<li>
<p style="margin-bottom: 0cm;"><em>Print is slower than echo</em>.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Use echo&#8217;s multiple times instead 	of <strong>string concatenation</strong>.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Set the maxvalue for your 	for-loops before and not in the loop.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Unset your variables to free 	memory, especially large arrays.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">mod_gzip which is available as an 	Apache module compresses your data on the fly and can reduce the 	data to transfer up to 80%</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Avoid magic function in php like 	__get, __set, __autoload</p>
</li>
<li>
<p style="margin-bottom: 0cm;">require_once() is expensive so 	prefer dont use it</p>
</li>
<li>
<p style="margin-bottom: 0cm;">If a method can be <strong>static</strong>, 	use  it as static. <strong>PHP sciprt performance</strong> increase by  4 	time.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">To know the script starting time 	use $_SERVER[’REQUEST_TIME’] is preferred to time()</p>
</li>
<li>
<p style="margin-bottom: 0cm;">See if you can use strncasecmp, 	strpbrk and stripos instead of regex i.e regular experession  are 	slower to excecute.</p>
</li>
<li>
<p style="margin-bottom: 0cm;"><strong>str_replace</strong> is faster than 	<strong>preg_replace</strong>.</p>
</li>
<li>
<p style="margin-bottom: 0cm;"><strong>strstr</strong> is faster than 	<strong>str_replace</strong> by a factor of 4</p>
</li>
<li>
<p style="margin-bottom: 0cm;">If the function, such as string 	replacement function, accepts both arrays and single characters as 	arguments, and if your argument list is not too long, consider 	writing a few redundant replacement statements, passing one 	character at a time, instead of one line of code that accepts arrays 	as search and replace arguments.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">It&#8217;s better to use switch 	statements than multi if, else if, statements.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Error suppression with @ is very 	slow.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Just declaring a global variable 	without using it in a function also slows things down (by about the 	same amount as incrementing a local var). PHP probably does a check 	to see if the global exists</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Turn on apache&#8217;s mod_deflate</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Close your database connections 	when you&#8217;re done with them</p>
</li>
<li>
<p style="margin-bottom: 0cm;">$row[’id’] is 7 times faster 	than $row[id]</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Error messages are expensive</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Do not use functions inside of for 	loop, such as for ($x=0; $x &lt; count($array); $x) The count() 	function gets called each time.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Incrementing a local variable in a 	method is the fastest. Nearly the same as calling a local variable 	in a function.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Incrementing a global variable is 	2 times slow than a local var.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Incrementing an object property 	(eg. $this-&gt;prop++) is 3 times slower than a local variable.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Incrementing an undefined local 	variable is 9-10 times slower than a pre-initialized one. .</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Method invocation appears to be 	independent of the number of methods defined in the class because I 	added 10 more methods to the test class (before and after the test 	method) with no change in performance.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Methods in derived classes run 	faster than ones defined in the base class.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">A function call with one parameter 	and an empty function body takes about the same time as doing 7-8 	$localvar++ operations. A similar method call is of course about 15 	$localvar++ operations.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Surrounding your string by &#8216; 	instead of &#8221; will make things interpret a little faster since 	php looks for variables inside &#8220;&#8230;&#8221; but not inside &#8216;&#8230;&#8217;. 	Of course you can only do this when you don&#8217;t need to have variables 	in the string.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">When echoing strings it&#8217;s faster 	to separate them by comma instead of dot. Note: This only works with 	echo, which is a function that can take several strings as 	arguments.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">A PHP script will be served at 	least 2-10 times slower than a static HTML page by Apache. Try to 	use more static HTML pages and fewer scripts.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Your PHP scripts are recompiled 	every time unless the scripts are cached. Install a PHP caching 	product to typically increase performance by 25-100% by removing 	compile times.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Cache as much as possible. Use 	memcached &#8211; memcached is a high-performance memory object caching 	system intended to speed up dynamic web applications by alleviating 	database load. OP code caches are useful so that your script does 	not have to be compiled on every request</p>
</li>
<li>
<p style="margin-bottom: 0cm;">When working with strings and you 	need to check that the string is either of a certain length you&#8217;d 	understandably would want to use the strlen() function. This 	function is pretty quick since it&#8217;s operation does not perform any 	calculation but merely return the already known length of a string 	available in the zval structure (internal C struct used to store 	variables in PHP). However because strlen() is a function it is 	still somewhat slow because the function call requires several 	operations such as lowercase &amp; hashtable lookup followed by the 	execution of said function. In some instance you can improve the 	speed of your code by using an isset() trick.</p>
<p>Ex.<br />
if 	(strlen($foo) &lt; 5) { echo &#8220;Foo is too short&#8221;; }<br />
vs.<br />
if 	(!isset($foo{5})) { echo &#8220;Foo is too short&#8221;; }</p>
<p>Calling 	isset() happens to be faster then strlen() because unlike strlen(), 	isset() is a language construct and not a function meaning that it&#8217;s 	execution does not require function lookups and lowercase. This 	means you have virtually no overhead on top of the actual code that 	determines the string&#8217;s length.</li>
<li>
<p style="margin-bottom: 0cm;">When incrementing or decrementing 	the value of the variable $i++ happens to be a tad slower then ++$i. 	This is something PHP specific and does not apply to other 	languages, so don&#8217;t go modifying your C or Java code thinking it&#8217;ll 	suddenly become faster, it won&#8217;t. ++$i happens to be faster in PHP 	because instead of 4 opcodes used for $i++ you only need 3. Post 	incrementation actually causes in the creation of a temporary var 	that is then incremented. While pre-incrementation increases the 	original value directly. This is one of the optimization that opcode 	optimized like Zend&#8217;s PHP optimizer. It is a still a good idea to 	keep in mind since not all opcode optimizers perform this 	optimization and there are plenty of ISPs and servers running 	without an opcode optimizer.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Not everything has to be OOP, 	often it is too much overhead, each method and object call consumes 	a lot of memory.</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Do not implement every data 	structure as a class, arrays are useful, too</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Don&#8217;t split methods too much, 	think, which code you will really re-use</p>
</li>
<li>
<p style="margin-bottom: 0cm;">You can always split the code of a 	method later, when needed</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Make use of the countless 	predefined functions</p>
</li>
<li>
<p style="margin-bottom: 0cm;">If you have very time consuming 	functions in your code, consider writing them as C extensions</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Profile your code. A profiler 	shows you, which parts of your code consumes how many time. The 	Xdebug debugger already contains a profiler. Profiling shows you the 	bottlenecks in overview</p>
</li>
<li>
<p style="margin-bottom: 0cm;">mod_gzip which is available as an 	Apache module compresses your data on the fly and can reduce the 	data to transfer up to 80%</p>
</li>
</ol>
<p>Webburners , we burn the web with our innovation , we are web developing firm expertise in all kinda web applicaiton , opensources . <strong>Webburners </strong>is among the emerging<strong> IT companies</strong> in <strong>India</strong>, having clients worldwide.Its <strong>wide range</strong> of services includes <strong>Web Solutions</strong>, <strong>Graphic Design</strong>, <strong>Software Development</strong>, I<strong>T Education</strong>, <strong>Multimedia Development</strong>, <strong>Online Marketting and Web optimization (SEO).</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webburners.com/2009/04/important-tips-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
