Skip to main content

Does PHP have a built in optimizer?


Like how MySQL Optimizer will convert queries into more efficient queries as it sees fit, is there a similar optimization process going on behind the scenes with PHP? Where PHP takes your code, analyzes it and converts it to be more efficient all before executing it?



Source: Tips4allCCNA FINAL EXAM

Comments

  1. PHP uses a single-pass compilation process in which it converts the source code into an opcode stream (which is then executed). Because the compilation uses only a single pass and does not build an AST most optimizations commonly done by other languages would be very hard to implement. There obviously are some simple optimizations done (like interning strings and prehashing symbols), but most of the "advanced" optimizations are simply not possible.

    By the way, a very simple way to "optimize" PHP code is to cache the generated opcode stream using the APC extension, so that it isn't recreated on every page load: The compilation process is quite resource intensive and using APC can often lower your CPU usage quite a bit.

    ReplyDelete
  2. PHP itself probably does some optimizations during interpretation, though I am not aware of any significant ones.

    But since PHP is extendable, a range of so-called PHP accelerators can be found around the web. An accelerator is a PHP extension which does some form of optimization for you, typically by employing opcode caching or similar.

    Distinguishing between interpretation (what the standard PHP distribution does) and compilation, several PHP compilers are available. You can pass PHP code through a PHP compiler which (rather than interpreting and executing the code on the fly) builds an optimized executable format for you.

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.