领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 赵劼 发布于 2009年9月15日
上个月Joe Stagner在博客上发表了一系列文章比较了PHP和ASP.NET的执行性能,引起了来自双方程序员的大量回应。Joe表示,他会将这样的测试持续下去,并寻求更为合适的方式,以获得对实际项目来说尽可能有参考价值的结论。
Joe表示:
一般来说,作性能测试的目的是要尝试证明一方比令一方要快。我受雇于微软,同时编写PHP和ASP.NET代码。我在.NET出现之前就在使用PHP,两个东西我都很喜欢。
所以,我很难说出哪个更好。当我说PHP好话时,我的微软同事们会写信来批评我,而当我发表倾向于ASP.NET的言论时,我的PHP朋友们会说我是微软的托。
我进行这个测试是因为每个人都对PHP的性能有自己的看法(Windows vs. Linux & 5.2 vs. 5.3),却没人能给出明确的数据。
根据Joe的描述,测试环境如下:
从实验结果上看,PHP在Linux和Windows的执行性能各有千秋:
Joe认为,这表示:
在Joe看来,全面来看,PHP和IIS团队在执行性能上已经做的非常成功,接下来就需要各开源程序的团队(Drupal、WordPress、Joomla等等)为各平台进行性能优化了。
不过,除了文件复制操作之外,ASP.NET在性能方面全面领先于PHP(无论部署在Linux还是Windows上面):
对于这个测试结果,Joe补充道:
我知道我的一些PHP朋友和Linux伙计们要跳出来驳斥我的测试和结果了。:)
我一直在思考,这样的性能比较是否需要加入一些高级的优化选项。不过.NET方面也有例如多线程,异步请求,和各种缓存方式可以使用
请注意——我并没有说“ASP.NET更快,所以你不应该使用PHP!”,我使用认为,PHP过于简单导致对某些高级应用来说有些举步维艰,就像ASP.NET在项目早期会有学习方面的复杂性。
对我来说,PHP最令人兴奋的地方不是它的语言/平台,而是成千上万聪明的PHP开发人员,以及各种优秀的项目(如Drupal、Joomla、WordPress、PHPBB、Nuke等等)。
可以这么认为,PHP在Windows和Linux上的性能处于同一个水平上,我现在终于可以为Windows编写那些我盼望着许多年的PHP类库了。
Joe还公开了测试代码。他表示,如果你对这个测试的结果有疑义,可以亲自进行这个实验,或是编写你自己的测试代码进行试验。
文章发布之后,许多网友对这一测试结果发表了看法。Joe基本上逐一回复了其中的主要观点:
“我使用ASP.NET只是因为我喜欢Visual Studio IDE”——我个人认为Visual Studio是最有生产力的开发工具。但是,PHP的有不错的选择。我使用Zend Studio,PHPEd,Komodo,Delphi for PHP,这些都很不错。我讨厌Eclipse,不过Zend也在这方面为PHP开发做了不少扩展。
应该比较ASP的性能——不用了,谢谢。旧式的ASP与目前的PHP与ASP.NET差距太大了。做这种比较,似乎是在建议使用ASP开发新项目,我强烈不建议你这么做。
32位与64位系统之间的比较——这些测试的目的并不是为了体现64位系统上的性能差距。今后的测试我会增加64位的场景。
“PHP丑陋至极”——哦,我不同意。旧式ASP要丑陋多了。你可以写出非常可怕而丑陋的PHP代码,也可以写出丑陋而可怕的C#或VB代码。同样,你也可以写出优雅的C++样式的PHP。这完全只和开发人员的技能有关。
应该使用Windows上的Apache进行测试——Apache是Linux上的服务器,不过我认为如果你在Windows上不使用IIS 7则会损失太多太多东西了。
“有办法在Win2K8中,在不损失安全性的前提下加快文件复制性能吗?”——似乎不行。我认为这涉及到Windows服务器上的ACL系统。我以后可能会测试通过数据流读取文件的性能,有些东西的性能可能会有所改善。不过,Web应用程序一般不会编程来复制大量文件。
“PHP一直是,也永远只是一个半专业性质的环境”——这种说法狗屁不通。PHP平台上有许多专业的,高质量的应用程序,也有很多我非常尊敬的开发人员。是否专业是开发人员的问题,不是PHP或ASP.NET的问题。
“我认为比较没有opcode缓存的PHP很不公平,.NET是编译执行的,而PHP需要每次都解释并‘编译’页面”——我同意这个测试可能不够完整,但是我不认同这个逻辑。我测试PHP的方式,就和下载安装的方式一样。我的虚拟主机也没有安装op-code缓存。而事实上,ASP.NET自带这个特性也并不意味着测试是不公平的,这是因为PHP缺少这个特性——不过这个要求很合理,我正在准备新的测试。
“说PHP不是一个‘专业的’语言很没道理,因为几乎所有最大的站点都是用PHP构建的”——这种说法是没道理,不过说那些站点“几乎都是”用PHP构建的也是错误的。有些是,有些不是。
Joe补充道:
如果你们看到这一数据之后对ASP.NET信心倍增我自然很高兴。如果我不认为.NET是开发Web应用程序来说是一种更好的选择——至少不属于其它平台,那么我也不会在微软工作了。
但是……如果你因为这些数据而忽视PHP,也是错误且幼稚的行为。
从纯技术角度来说,我认为.NET远比PHP强大,但这并不意味着PHP不够强大。在我看来,PHP的力量体现在众多的应用程序以及可用的框架。
大约一周以后,Joe公开了第二次测试的结果。与前一个测试相比,第二个测试主要有以下两个改变:
对于第二次测试及其结果,Joe解释到:
从结果上看,Ubuntu和Debian上运行PHP的性能差距可以忽略不计。部分条目的性能有些细小的改进,有些则有25%的提高,但是总体来说其效果比我想象中要来得低。
使用APC之后,一些条目的运行反而变慢了,不过我认为这只是机器所造成的误差。请注意,表格中显示的不是第一次的结果,都是经过两次刷新,确认是在缓存命中时得到的结果。
我认为现在的测试非常公平。
空的循环测试和空的函数执行非常重要,因为这反映了语言或平台的基础消耗。这是处页面传输等性能开销外的性能消耗,是一个重要的考虑方面。
我的一些PHP朋友也认可这个测试的准确性,不过给出了非常有见解的补充:
- ASP.NET在性能上的领先不会对我有什么影响。PHP是我的最爱,我的应用程序已经足够快了。
- 没错,ASP.NET在基础性能上是比较快,但是我的应用程序可以通过优秀的页面实现和JavaScript实践把这部分性能补回来。
- 我在进行Drupal开发,我对PHP最熟悉,因此我宁愿多花一些硬件来保持更好的开发效率。
这些都是很不错的评论!
此外,根据上一次实验的结果,在Windows平台上运行PHP时,在MySQL和文件的访问上有一些性能问题,微软许多团队都向我获取了相关信息。希望这些数据都够转变为切实的改进。
Joe表示,他将收集大家认为更公平,更有意义的测试场景。以下是他所计划的测试项目:
国内也曾经进行过PHP在Linux和Windows平台上的性能测试。InfoQ曾经报道过微软在WordCamp China 2009大会上公开了之前与康盛创想合作进行的性能评估结果:在Windows Server 2008 + IIS上运行PHP,从平均相应时间,每秒处理的请求数,以及数据吞吐量等多方便均优于Linux + Apache的托管方式。
您的看法如何?您希望看到什么样的测试呢?
赵劼 网名为老赵,洋名Jeffrey Zhao,写有技术博客“老赵点滴”。关注前沿技术,并致力于开源社区与微软平台的组合优化。
基础性能的微小差异着实可以忽略不计,对于网站来说,最有价值的考量还是并发请求的负载能力,此外就是网站应用与后台数据库的交互能力
国内程序员说PHP速度快,多半都是在说PHP跟MySQL配合速度快,Windows下访问MySQL不行,这是事实,作为.NET死忠,我承认这点
其实我更乐见拿Java来跟.NET比较……
看完后在想是谁翻译过来的,会不会是老赵,一看正是
----火麒麟个人觉得不该用缓存来比,缓存的都是静态页面,在大量网站访问下有用,但是比较执行动态运算速度比缓存没有意义的
blog.csdn.net/kylinforce
.net 应该和PYthone,buby来比较
用 MS SQL Server 2008 吧
#, 差的是价格,因此我现在很推荐Windows + ASP.NET,带上*nix上的存储。
#, 这里的“缓存”是指PHP二进制码的缓存。PHP在很长一段时间内是每次请求页面都会“解析”的,“缓存”节省的是解析的开销。
就算速度不一样,那又如何,尺有所长,寸有所短,各有适合各自的应用,剥离了环境都放到真空里比来比去有什么意义。
#, PHP,ASP.NET,Python,Ruby,Java,他们在Web开发领域适用范围非常大,因此会有比较。
而且无论哪个技术都是把其他技术当作竞争对手的,这就说明了比较的意义。
同理,许多大牛也在研究PHP和Rails能否进入领域,并不是根据我们脑子里一闪而过的感觉来决定的。
从PHP诞生之日起,各位,翻翻十年前有关PHP的文章,就无休无止的在跑一个1万,10万的空循环来对比测试PHP和ASP,和JSP之间谁更快。十年过去了仍然这样。唯一不同的是现在换成.NET,而PHP自身却在这种长久的不利评测中得到了大量的应用。
由此可见,单一的空语句执行速度还是最重要的么?
在WEB上便捷的开发,与各种系统之间灵活的搭配,像胶水一样将各种不同的物件拼装起来呈现给Web,(python在这方面也做得非常棒)。这才是PHP能有今天的本质原因。
选择一个语言有时不仅是选择语言本身,而是对一套整体系统的选择。可能是基于成本,也可能是基于可扩展性、延续性,以及和现有其它系统之间的配合程度。很难想像当公司跑着nginx+memcache时还要选择.net来让一个100万次的for循环快那么0.1秒.
这个问题相当无聊
你说的非常正确。可惜要理解到这一点,需要有大量的积累才能感受到。
而有相当部分的人,其实还在纠结于原始性能,即时四处都有人强调Web应用程序的关键和瓶颈是什么。
不想说什么了,RT吧
"实际页面测试:循环,寒暑调用和对象操作是一类测试..."。。。。“寒暑调用”?? 没有review就贴出来么??
刚还以为“寒暑调用”是某种专业的性能测试技术呢,看来被误导了
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
15 条回复
关注此讨论 回复