<?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/"
	>

<channel>
	<title>一个程序猿 &#187; 效率</title>
	<atom:link href="http://www.sunboyu.cn/tag/%e6%95%88%e7%8e%87/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sunboyu.cn</link>
	<description>时光不会倒流,脚步总要前进</description>
	<pubDate>Tue, 31 Jan 2012 10:50:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>框架资源消耗分析</title>
		<link>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml#comments</comments>
		<pubDate>Wed, 03 Dec 2008 14:42:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[原创技术]]></category>

		<category><![CDATA[效率]]></category>

		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=408</guid>
		<description><![CDATA[简单使用了下CI框架，发现了不少技巧：在 Controller类中实例化了好多的类
function _ci_initialize()
	{
		// Assign all the class objects that were instantiated by the
		// front controller to local class variables so that CI can be
		// run as one big super object.
		$classes = array(
							'config'	=&#62; 'Config',
							'input'		=&#62; 'Input',
							'benchmark'	=&#62; 'Benchmark',
							'uri'		=&#62; 'URI',
							'output'	=&#62; 'Output',
							'lang'		=&#62; 'Language',
							'router'	=&#62; 'Router'
							);
		
		foreach ($classes as $var =&#62; $class)
		{
			$this-&#62;$var =&#38; load_class($class);
		}
&#160;
		// In PHP 5 the Loader class is run as [...]]]></description>
			<content:encoded><![CDATA[<p>简单使用了下CI框架，发现了不少技巧：在 Controller类中实例化了好多的类</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">function _ci_initialize()</li>
<li>	{</li>
<li>		// Assign all the class objects that were instantiated by the</li>
<li>		// front controller to local class variables so that CI can be</li>
<li>		// run as one big super object.</li>
<li>		$classes = array(</li>
<li>							'config'	=&gt; 'Config',</li>
<li>							'input'		=&gt; 'Input',</li>
<li>							'benchmark'	=&gt; 'Benchmark',</li>
<li>							'uri'		=&gt; 'URI',</li>
<li>							'output'	=&gt; 'Output',</li>
<li>							'lang'		=&gt; 'Language',</li>
<li>							'router'	=&gt; 'Router'</li>
<li>							);</li>
<li>		</li>
<li>		foreach ($classes as $var =&gt; $class)</li>
<li>		{</li>
<li>			$this-&gt;$var =&amp; load_class($class);</li>
<li>		}</li>
<li>&nbsp;</li>
<li>		// In PHP 5 the Loader class is run as a discreet</li>
<li>		// class.&nbsp; In PHP 4 it extends the Controller</li>
<li>		if (floor(phpversion()) &gt;= 5)</li>
<li>		{</li>
<li>			$this-&gt;load =&amp; load_class('Loader');</li>
<li>			$this-&gt;load-&gt;_ci_autoloader();</li>
<li>		}</li>
<li>		else</li>
<li>		{</li>
<li>			$this-&gt;_ci_autoloader();</li>
<li>			</li>
<li>			// sync up the objects since PHP4 was working from a copy</li>
<li>			foreach (array_keys(get_object_vars($this)) as $attribute)</li>
<li>			{</li>
<li>				if (is_object($this-&gt;$attribute))</li>
<li>				{</li>
<li>					$this-&gt;load-&gt;$attribute =&amp; $this-&gt;$attribute;</li>
<li>				}</li>
<li>			}</li>
<li>		}</li></ol></div>
<p>然后在默认welcome的模型里print_r($this),那是一个密密麻麻阿，无数的实例化数据摆在这里，估计内存CPU消耗也是惊人。<br />
当然，作者并不是没有解决这些问题，所有的类在实例化之后使用static的方式常驻内存中，在第一次加载后，响应时间明显缩短，我本地测试是否默认实例化如此多的对象速度没有明显的差别。<br />
对于原来我写程序，其实是有洁癖的，或者是心理障碍，就是像写C一样仔细考虑每个变量和每个方法，计算操作复杂度，其实对于整个系统开发和PHP这们语言来说，这么开发其实是杞人忧天，因为PHP本身就可以处理这些问题，比如static方法，一些缓存。<br />
在进行各种测试之后，我的类库居然也默认加载了一些方法，只是应用在小网站中。<br />
对于大型网站，还是要充分考虑效率性能的问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/03/%e6%a1%86%e6%9e%b6%e8%b5%84%e6%ba%90%e6%b6%88%e8%80%97%e5%88%86%e6%9e%90.shtml/feed</wfw:commentRss>
		</item>
		<item>
		<title>框架开发的两个主方向</title>
		<link>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml</link>
		<comments>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml#comments</comments>
		<pubDate>Tue, 02 Dec 2008 05:50:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[内存消耗]]></category>

		<category><![CDATA[效率]]></category>

		<category><![CDATA[框架]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=406</guid>
		<description><![CDATA[最近一直在研究框架，翻阅了各大框架结构，最后总结出两点：性能和接口规范。
1、接口规范
框架的一大意义在于整合类库和资源，使用统一的接口和统一的方式进行调用，统一的接口又更加方便其他资源的整合，模块化的管理更容易对代码进行管理。这样，可以使得不同的开发人员形成一致的风格进行分工协作。
2、效率
框架在整合类库，判断路由的时候，毕竟消耗很多冗余操作。太多的类库加载也将耗费很多的内存和CPU，因此，框架开发的另一个要点就是要降低操作复杂性，降低内存消耗，在这个基础上有可优化性。
总结到这里，晚上继续玩命……
]]></description>
			<content:encoded><![CDATA[<p>最近一直在研究框架，翻阅了各大框架结构，最后总结出两点：性能和接口规范。<br />
1、接口规范<br />
框架的一大意义在于整合类库和资源，使用统一的接口和统一的方式进行调用，统一的接口又更加方便其他资源的整合，模块化的管理更容易对代码进行管理。这样，可以使得不同的开发人员形成一致的风格进行分工协作。<br />
2、效率<br />
框架在整合类库，判断路由的时候，毕竟消耗很多冗余操作。太多的类库加载也将耗费很多的内存和CPU，因此，框架开发的另一个要点就是要降低操作复杂性，降低内存消耗，在这个基础上有可优化性。</p>
<p>总结到这里，晚上继续玩命……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/12/02/%e6%a1%86%e6%9e%b6%e5%bc%80%e5%8f%91%e7%9a%84%e4%b8%a4%e4%b8%aa%e4%b8%bb%e6%96%b9%e5%90%91.shtml/feed</wfw:commentRss>
		</item>
		<item>
		<title>像写C一样写PHP</title>
		<link>http://www.sunboyu.cn/2008/06/19/%e5%83%8f%e5%86%99c%e4%b8%80%e6%a0%b7%e5%86%99php.shtml</link>
		<comments>http://www.sunboyu.cn/2008/06/19/%e5%83%8f%e5%86%99c%e4%b8%80%e6%a0%b7%e5%86%99php.shtml#comments</comments>
		<pubDate>Thu, 19 Jun 2008 15:31:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[感悟]]></category>

		<category><![CDATA[PHPer]]></category>

		<category><![CDATA[效率]]></category>

		<category><![CDATA[编码]]></category>

		<category><![CDATA[草根]]></category>

		<guid isPermaLink="false">http://www.sunboyu.cn/?p=126</guid>
		<description><![CDATA[除了咱写PHP的，好多程序员还是或多或少看不起PHPer，php的优点就是随意，因此，一个稍有编程基础的人也能很快上手去写一些应用模块。
php的随意更体现在它本身为弱类型的语言，加上php核心的智能处理很很好的报错机制，一些随手写出的程序也能但当一部分任务。
时间长了，好像人们都养成了这种习惯，过多得依赖了php本身的优点，使得程序员自身一些习惯退化，而真正变成的‘代码工人’。
而科班出身的程序员，基本都学习过c语言编程，软件工程，数据结构之类的课程。回过头来看看我自己写的代码，那些基本的东西已经抛弃大多，而PHP作为草根语言，无章法，随意，也被我体现得淋漓尽致。
看看我自己程序暴露的问题：结构混乱，难读，效率低下，冗余，这些都是自身对PHP认识问题而造成。php本身创建了优秀的容错机制，然而并不是说我们必须依赖这些机制。而我们同样可以像写C一样来写PHP，从每个变量的初始化，数据类型的定义，变量用完后的注销，类的优化，算法的优化，都可以体现在PHP上。
再说效率，很多人说PHP效率不行，我认为这纯属认识问题。在处理大量数据的时候，PHP优点力不从心，但这样只是从片面考虑，从PHP的接口来看，PHP很容易跟其他语言进行对接，C,C++,JAVA……，当然，在一些复杂运算上，我们完全可以交给其他语言来做，通过丰富的接口来传递数据。
任何语言都不是完美的，我们只是在最能体现它优势的地方来用他。PHP的优势在于快速构建WEB应用系统，简单，上手，如果我们能把写C的习惯应用到做PHP上，那PHPer绝对不能成为草根。
]]></description>
			<content:encoded><![CDATA[<p>除了咱写PHP的，好多程序员还是或多或少看不起PHPer，php的优点就是随意，因此，一个稍有编程基础的人也能很快上手去写一些应用模块。<br />
php的随意更体现在它本身为弱类型的语言，加上php核心的智能处理很很好的报错机制，一些随手写出的程序也能但当一部分任务。<br />
时间长了，好像人们都养成了这种习惯，过多得依赖了php本身的优点，使得程序员自身一些习惯退化，而真正变成的‘代码工人’。<br />
而科班出身的程序员，基本都学习过c语言编程，软件工程，数据结构之类的课程。回过头来看看我自己写的代码，那些基本的东西已经抛弃大多，而PHP作为草根语言，无章法，随意，也被我体现得淋漓尽致。<br />
看看我自己程序暴露的问题：结构混乱，难读，效率低下，冗余，这些都是自身对PHP认识问题而造成。php本身创建了优秀的容错机制，然而并不是说我们必须依赖这些机制。而我们同样可以像写C一样来写PHP，从每个变量的初始化，数据类型的定义，变量用完后的注销，类的优化，算法的优化，都可以体现在PHP上。<br />
再说效率，很多人说PHP效率不行，我认为这纯属认识问题。在处理大量数据的时候，PHP优点力不从心，但这样只是从片面考虑，从PHP的接口来看，PHP很容易跟其他语言进行对接，C,C++,JAVA……，当然，在一些复杂运算上，我们完全可以交给其他语言来做，通过丰富的接口来传递数据。<br />
任何语言都不是完美的，我们只是在最能体现它优势的地方来用他。PHP的优势在于快速构建WEB应用系统，简单，上手，如果我们能把写C的习惯应用到做PHP上，那PHPer绝对不能成为草根。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunboyu.cn/2008/06/19/%e5%83%8f%e5%86%99c%e4%b8%80%e6%a0%b7%e5%86%99php.shtml/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

