<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sun, 12 Feb 2012 21:05:58 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Anson Cheung's Blog: Optimize Web Site Performance by using YSlow]]></title>
      <guid>http://www.phpdeveloper.org/news/16940</guid>
      <link>http://www.phpdeveloper.org/news/16940</link>
      <description><![CDATA[<p>
In a recent post to his blog <i>Anson Cheung</i> guides you through another tool that can help you optimize your web applications - <a href="http://www.ansoncheung.tk/articles/optimize-web-site-performance-using-yslow">using YSlow for the frontend</a> to detect trouble spots early (whether they're actually caused by the frontend or not).
</p>
<p>
He goes through the thirteen rules to help improve your website's performance including:
</p>
<ul>
<li>Make fewer HTTP requests
<li>Gzip components
<li>Make JS and CSS external
<li>Remove duplicate scripts
<li>Configure ETags
</ul>
<p>
For more information about the YSlow extension (available for Firefox, Chrome, Opera and mobile devices), check out the <a href="http://developer.yahoo.com/yslow/">project's page</a> on Yahoo's Developer section (including ten more rules it checks).
</p>]]></description>
      <pubDate>Mon, 03 Oct 2011 11:12:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Anthony Ferrara's Blog: On Optimization in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16698</guid>
      <link>http://www.phpdeveloper.org/news/16698</link>
      <description><![CDATA[<p>
<i>Anthony Ferrara</i> has a new post to his blog today looking at something that's constantly a focus of user-facing applications, PHP ones or otherwise - <a href="http://blog.ircmaxell.com/2011/08/on-optimization-in-php.html?m=0">application optimization</a>. He specifically discusses handling it in PHP and some things to keep an eye out for.
</p>
<blockquote>
When it comes to optimization, there are two competing viewpoints in the PHP community. Some say that optimization should only ever be an after thought and to avoid premature optimization at all costs. Others will say that this is impractical, and you should make your application fast as you write it, since then you won't have to go back and clean it up to make it faster. While I can understand the viewpoints of both sides, I am firmly in the former category.
</blockquote>
<p>
He talks about the "90/10 Rule" of development (most of the work is done by only a small part of the code) and what that critical 10% could be made of. He also touches on the "60/40 Rule", "instinctual optimization" and the emphasis people put on benchmarks for their tool or framework of choice.
</p>]]></description>
      <pubDate>Wed, 10 Aug 2011 08:35:38 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Carmony's Blog: Working with Middle-Scale Websites]]></title>
      <guid>http://www.phpdeveloper.org/news/16618</guid>
      <link>http://www.phpdeveloper.org/news/16618</link>
      <description><![CDATA[<p>
In a new post <i>Justin Carmony</i> looks at what it <a href="http://www.justincarmony.com/blog/2011/07/18/working-with-middle-scale-websites/">means to me a "middle-scale website"</a> and has some recommendations for anyone working with their applications and considering things like scalability, overcompensation and finding real results through profiling.
</p>
<blockquote>
Hopefully at some point, your website is going to get a lot of traffic. Yay, you've reached your goal of getting good traffic, but it is soon followed by issues with performance and load. I like to call these the growing pains of a website. So as a web developer, I suddenly have the epiphany of "Hey, I need to scale my website!" What follows next is the biggest mistake a web developer can make: They start looking at articles on how Google scales, or maybe how Facebook manages all of their traffic. This is a mistake! To be brutally honest, you are not Google. You are not Facebook. You are not Twitter. You are a website that receives less than 0.000001% of the traffic that some of the major websites receive.
</blockquote>
<p>
He includes a "reality check" of the setup behind a popular social site, <a href="http://stackexchange.com/">StackExchange</a>, with comments from their <a href="http://blog.serverfault.com/post/stack-exchanges-architecture-in-bullet-points/">own post about their infrastructure</a>. He talks about things included in a move to "middle-scale" like adding caching, performance tweaking, moving to a multiple server model and using replication.
</p>]]></description>
      <pubDate>Thu, 21 Jul 2011 11:53:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Fabien Potencier's Blog: The PHP Ternary Operator: Fast or not?]]></title>
      <guid>http://www.phpdeveloper.org/news/16601</guid>
      <link>http://www.phpdeveloper.org/news/16601</link>
      <description><![CDATA[<p>
In a new post <i>Fabien Potencier</i> looks at <a href="http://fabien.potencier.org/article/48/the-php-ternary-operator-fast-or-not">the ternary operator</a> in PHP and wonders which is faster - using it or not (well, sort of...)
</p>
<blockquote>
People like micro-optimizations. They are easy to understand, easy to apply... and useless. But some time ago, while reviewing pull requests for <a href="http://twig-project.org/">Twig</a>, I read an interesting discussion about the performance of the <a href="https://github.com/fabpot/Twig/issues/380">ternary operator</a> in PHP (thanks to <a href="https://github.com/nikic">@nikic</a> for the investigation). Do you know which [example] snippet is the fastest (of course, they do exactly the same)? The right answer is: it depends.
</blockquote>
<p>
He notes that it's all about the data being worked with. As some of his tests show (testing code included) there does end up being a difference between using it on a small and large dataset. After investigation, it was found that the ternary operator copies (copy-on-write) the value versus an "if" that just evaluates. He also mentions the new "?" version of the ternary syntax in PHP 5.3, but notes it still suffers from the same issue.
</p>
]]></description>
      <pubDate>Mon, 18 Jul 2011 10:35:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: Optimize File Downloading in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16562</guid>
      <link>http://www.phpdeveloper.org/news/16562</link>
      <description><![CDATA[<p>
New on DevShed.com today is a tutorial helping you <a href="http://www.devshed.com/c/a/PHP/Optimize-File-Downloading-in-PHP/">optimize your file downloading</a> for your web application and provide a way to give users dynamic links to files instead of direct ones.
</p>
<blockquote>
The true path to the downloadable content can be revealed easily and is not protected, allowing users to bypass web forms and download the content directly using a browser. [...] The Solution: A Secure and Efficient PHP Download Script
</blockquote>
<p>
<a href="http://www.devshed.com/c/a/PHP/Optimize-File-Downloading-in-PHP/">This tutorial</a> is actually an update of <a href="http://www.devshed.com/c/a/PHP/Simple-and-Secure-PHP-Download-Script-with-Limits-Tutorial/">their previous tutorial</a> looking at a similar subject, with a few differences. Their code provides a way to limit the files a user can download, the number of times they can download it and a script to read the file and push it to the user without them ever knowing the path.
</p>]]></description>
      <pubDate>Thu, 07 Jul 2011 11:05:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matt Knight's Blog: Optimising Zend_Config]]></title>
      <guid>http://www.phpdeveloper.org/news/16557</guid>
      <link>http://www.phpdeveloper.org/news/16557</link>
      <description><![CDATA[<p>
<i>Matt Knight</i> has a recent post looking at a specific part of the Zend Framework, the Zend_Config component, and how it's overhead can be reduced (and somewhat replaced) <a href="http://www.matt-knight.co.uk/2011/optimising-zend-config/">using a few lines of PHP 5.3-specific code</a>.
</p>
<blockquote>
One such limitation that I've recently seen is the performance of Zend_Config. This class underpins the mechanism by which developers provide configuration to the application, and all this config is passed around in the form of Zend_Config objects. [...] For the purposes of this article, I'm referring specifically to config INI files, using Zend_Config_Ini to parse. This is a very common format for Zend applications to use - it is familiar to developers and infrastructure support teams - and is the case where the performance issues become apparent
</blockquote>
<p>
He talks about parsing ini files and the complications that can come with the Zend Framework method of parsing them - conversion to objects via a recursive method, merging data from different sections and the overhead toArray can cause. He shows an alternative that uses <a href="http://php.net/array_replace_recursive">array_replace_recursive</a> to handle the parsing and a class version that offers backwards compatibility with the Zend_Config structure. He claims to have seen a sixty percent jump in performance using these methods over the Zend Framework's defaults.
</p>]]></description>
      <pubDate>Wed, 06 Jul 2011 10:39:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Phil Sturgeon's Blog: Benchmark 2011: A call for Participants]]></title>
      <guid>http://www.phpdeveloper.org/news/16282</guid>
      <link>http://www.phpdeveloper.org/news/16282</link>
      <description><![CDATA[<p>
<i>Phil Sturgeon</i> has <a href="http://philsturgeon.co.uk/blog/2011/05/benchmark-2011-a-call-for-participants">put out a call for volunteers</a> about running some benchmarks on the wide range of PHP frameworks out there. He wants set up a "Benchamrks 2011" event that gives all of the frameworks their fair share at putting up good numbers in their most optimized fashion.
</p>
<blockquote>
Yesterday Dan Horrigan (another PHP framework user and developer) suggested we all have a go at "Benchmark 2011". A chance for every framework developer or interested party to take their framework of choice, make a hello world and post it up online for a fair and factual survey of how many requests per second the base of the framework can handle without APC, etc. [...] This is not a new idea and it is certianly not meant to be an all encompasing comparison of framework features. The logic here is the same as testing the speed of server software such as Apache vrs Nginx.
</blockquote>
<p>
He's included some rules to follow in creating your examples including the use of the latest release of the frameworks, no modification to the core framework files is allowed and you must create a publicly accessible repository with the example's files. If you're interested in participating, you can create your example and <a href="http://twitter.com">tweet</a> about it with the "#benchmark2011" hashtag or just <a href="http://philsturgeon.co.uk/blog/2011/05/benchmark-2011-a-call-for-participants">post about it in the comments</a>.
</p>]]></description>
      <pubDate>Mon, 02 May 2011 12:08:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Eran Galperin's Blog: Database Optimization Techniques You Can Actually Use]]></title>
      <guid>http://www.phpdeveloper.org/news/16111</guid>
      <link>http://www.phpdeveloper.org/news/16111</link>
      <description><![CDATA[<p>
<i>Eran Galperin</i> has posted a few helpful tips (ones you can "actually use") for <a href="http://www.techfounder.net/2011/03/25/database-profiling-and-optimizing-your-database-the-generic-version/">optimizing your database</a> and how your application uses it.
</p>
<blockquote>
I understand the need for simplicity because of the wide audience of Smashing Magazine, but I'd wish they'd give something more than the absolute basics you could find in almost any other site out there [in <a href="http://www.smashingmagazine.com/2011/03/23/speeding-up-your-websites-database/">their recent tutorial</a>]. I also didn't like some of the methods mentioned there for profiling (or the code itself), so I here is my starter guide to optimizing database performance.
</blockquote>
<p>
Tips included in <a href="http://www.techfounder.net/2011/03/25/database-profiling-and-optimizing-your-database-the-generic-version/">his post</a> center around a different set of questions:
</p>
<ul>
<li>When should you optimize the database?
<li>Think about profiling first, optimizing last
<li>How EXPLAIN can find the big problems
<li>When caching should be used
</ul>
<p>
Some code is included, but only briefly since his point is more about the server than the client (script) side of things.
</p>]]></description>
      <pubDate>Mon, 28 Mar 2011 13:15:57 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings techPortal: Optimising Magento for Performance]]></title>
      <guid>http://www.phpdeveloper.org/news/16015</guid>
      <link>http://www.phpdeveloper.org/news/16015</link>
      <description><![CDATA[<p>
On the Ibuildings techPortal today there's a new tutorial from <i>Rupert Jones</i> showing you how to get the <a href="http://techportal.ibuildings.com/2011/03/08/optimising-magento-for-performance/">best performance from Magento</a> with a set of technologies tailored for just that.
</p>
<blockquote>
Following our earlier entry about installing Magento Enterprise, we thought it would be appropriate to follow up with some tips for getting more from your Magento installation. One of the major criticisms leveled at Magento is its speed; many complain that it is far too slow. In this article we'll go through some steps you can perform to fine-tune your server to allow Magento to run more smoothly and more quickly in a production environment.
</blockquote>
<p>
Among the technologies they recommend are things like <a href="http://memcached.org/">memcached</a>, <a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html">mod_expires</a>, <a href="http://php.net/manual/en/book.apc.php">APC</a>, <a href="http://www.gzip.org/">gzip</a> and <a href="http://blog.mysqltuner.com/">MySQLTuner</a>.
</p>]]></description>
      <pubDate>Tue, 08 Mar 2011 13:41:09 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[StackOverflow.com: Optimizing Kohana-based Websites for Speed and Scalability]]></title>
      <guid>http://www.phpdeveloper.org/news/15925</guid>
      <link>http://www.phpdeveloper.org/news/15925</link>
      <description><![CDATA[<p>
On StackOverflow a question was asked about how to tweak and tune the performance of a <a href="http://kohanaphp.com">Kohana</a>-powered website. The result was a <a href="http://stackoverflow.com/questions/1260134/optimizing-kohana-based-websites-for-speed-and-scalability/1283195#1283195">detailed answer</a> from <i>Pascal Martin</i> that can be applied to just about any kind of web application out there, not just ones written in PHP.
</p>
<blockquote>
Here are some points that come to my mind when talking about performances, scalability, PHP, ...First of all, there are many aspects/questions that are to consider : configuration of the server (both PHP, MySQL, and system) ; you might get more help about that on serverfault, I suppose, PHP code, database queries, using or not your webserver? Can you use any kind of caching mechanism ? Or do you need always more that up to date data on the website ?
</blockquote>
<p>
He goes on to give tips about using a reverse proxy (like <a href="http://varnish.projects.linpro.no/">Varnish</a>), using an opcode cache, caching data as well, profiling and optimizing SQL queries. He finishes it off with a more specific look at Kohana and how you can use some of its built in tools to accomplish these same goals.
</p>]]></description>
      <pubDate>Fri, 18 Feb 2011 08:39:53 -0600</pubDate>
    </item>
  </channel>
</rss>

