它们各有各的优势,各有各的长处
如果有C/C++基础可以尝试PHP或者jsp
如果有C/C++基础可以尝试PHP或者jsp
解决方案 »
- dedecms如何进行单步调试
- 为什么php设定php mysql_query(set names utf-8)后,中文还是乱码
- 请教正则达人,如何去掉图片标签里src,alt,width,height之外的属性
- 关于@fsockopen
- 请问,如下错误是什么情况,是否为我的存储过程有问题?
- 新手 求一个SQL文 是MYSQL的数据库 望高手给于指导 马上给分
- 我把php安装在ntfs下就不行,只有安装到fat格式的盘里才行,这要怎么解决呀?各位?
- 诚聘php高级程序设计师
- 如何将MYSQL一个表里的IP字段与完整显示城市例子结合?
- 关于通过淘宝商品ID获取商品资料API调用次数限制问题,求大神指教?
- 请教php通过odbc访问access数据库(写出例子者立刻送100分)
- 有人用过phpbb吗?如何将其汉化啊??高手指教
不过还是用PHP爽衣点
一些废话 关于PHP和JSP的运行速度之比较,两者的起源地--美国的网路上已经争论了很长时间。给人的感觉是PHP社群总是说没有任何官方任何的测试标明JSP一定要比PHP快速,但是JSP社群也总是坚持编译执行的JSP在先天就比解释执行(由于Zend公司的努力,现在的PHP也应该是接近编译模式运行了)的PHP要快速。就我本人的观点,两者的运行速度比较实际上意义并没有想象中那么重大--在一个PHP的工程中,我们绝对依赖PHP;而在一个用到JSP的工程中,很多情况下JSP只是起到MVC模式中的表示或者控制的作用,真正的支持还在于其后真正的Java家族(比如Servlet,Bean甚至是EJB等等)。因此如果过分看重PHP和JSP在各自速度上的比较,可能并不能说明由该两种技术构建的工程的速度因素。(至于说是否存在完全由JSP构建的工程,我想是有的,不过希望以后维护这个工程的家伙不是我) 但是我还是做了几次有趣的测试--毕竟让代码们用数字展示各自的能力是一件很奇妙的事情,并且之前我也做过有关PHP代码速度测试和优化的工作,由此获得的一些成就感很容易让人忘记自己在其上花费了一夜时间。其实我做的工作也很简单,先是比较一些简单运算的速度,然后是测试和数据库连接的速度。我的用意是把前者比作一般的表示层和控制层的工作,而后者则被希望表示一般的逻辑层所作的工作。还是MVC模式。
开始测试 照例是要把测试的环境介绍一下,我采用了一台Linux(我的开发环境)和一台Windows(我的猪窝了)机器进行相同的测试(这样也可以顺便让Linux再羞辱Windows一次)--所谓相同是指代码的内容相同--非常感谢我喜欢的这两种语言都是跨平台的。具体的配置如下:
(猜猜看同样的代码在哪台机器上跑得快哪?下面你将会得到答案) 然后就是一些简单的Coding。我把写好的JSP放在了Linux平台上,首先是1000×1000次的算术运算操作,采用两个for循环完成它。这样的循环次数比较保守,因为我也不知道JSP究竟是否能在我不耐烦的按下浏览器的"停止"按钮之前执行完它们--可是事实却让我小小的吃惊了一次--在大约13毫秒左右的时间内这样数目巨大的循环被完成了。于是我又很不平衡的在两个循环的最大数后面各加了一个0--10000×10000次循环!不出我所料,等待的时间也不过是1.33-1.34秒左右。应该说,在没有写PHP的相关功能之前,我已经感觉到了JSP的强大速度优势。
好了,让我们再来看看PHP在Linux和Apache中的表现--1000×1000勉强通过,但是花费了竟然有5秒左右之巨;随后的10000×10000次测试真是一场灾难,我在页面中设置了PHP的执行时限为不限,但是结果是对于我来说这段代码真正的是不限时间的在孜孜不倦的运行,始终没有返回。OK,STOP IT!所以这一项测试没有结果。
在Windows平台的表现一样,不过看来速度都慢了一些,这个结果让我心理很安慰。 下面一项是连接和操作数据库的测试,我选择了MySQL。从上面的测试环境中可以看出在Linux机器上另有Oracle在运行着,但是有两个原因让我并没有使用Oracle参与测试,一是考虑到MySQL在Linux平台上已经得到了广泛的应用;二是Oracle在我周围的客户中使用并不多见。选择的数据库操作是SELECT,而且看来不能像普通的算术运算那样动辄就是1000×1000,我首先选择了10×10的二重循环。很明显,JSP在进行数据库操作时要比普通运算时慢了许多,让我等待了260毫秒左右;而当我鼓起勇气对JSP进行100×100测试之后,我才发现自己又陷于一场漫长的等待--最终29秒左右完成了这一操作。
对于PHP,我没有抱很大希望,先前的测试已经说明了PHP的普通运算能力确实有所欠缺。但是LAMP的组合又让我看到了速度的影子--实际的测试结果让我吃惊不小,10×10的测试PHP几乎在瞬间完成(85毫秒左右),而100×100的测试也仅仅花费了8.33秒左右。 以下是测试的条件和数据表,这里(speed_test.zip)可以下载测试用例:
结论 以上的测试只是我突发感慨而来的产物,那时我正在考虑一个简单的基于Web的商店是否值得完全使用JSP来实施--虽然我一直非常中意MVC模式并且在PHP中也引入了这样的概念,但是对于Web项目的"超快速开发"来说采用完全JSP倒也不失为达到目标并且可以有效保证项目的开发速度和运行速度的一种方式。于是我就想到了应该测试一下JSP和PHP的差距。不过结果并不能让我满意--在数据库的连接方面,借助JDBC可以达到数据库层的透明,但是速度上似乎有了许多的折扣;至于那种1000×1000的计算,如果有这样的网上商店会经常使用的话,我非常乐意认识一下这个项目的负责人并且好好学习一次。
因此,这次测试也许会让一些JSP的支持者失望,PHP从速度角度来说,我认为完全可以接受其应用在各种Web项目中。当然,对于电子商务以及其他关键应用采用何种技术的话题,已经超过了本文的范畴,我在这里只想多阐述一些我的观点:毫无疑问Java技术已经成为了以上这些关键应用的事实技术标准,因为她的丰富内涵和相对简单的开发以及产品的强壮性都非常容易被我们所接受;而显然将PHP和Java技术在Web上的应用相比是毫无道理的、结果也是非常明显的,同样将PHP和JSP相比也只是不合适的--JSP在整个Java战略中只是算不上核心的一块,而PHP哪--只有PHP,完全PHP。不过作为LAMP的一分子,越来越受到重视的PHP在中小型项目以及非关键应用中的能力不容怀疑。
至于运行速度,JSP比PHP快是可以提前想到的,因为JSP会被编译成Class文件,和Servlet一样,所以肯定是比php这样纯解释型的语言快的
asp.net性能不错,但在linux 上不占优势,限制了发展。
php发展速度太慢,开发包没有多大发展。
jsp这几年大力发展,面向对象做的很好,开发包不断加强,很容易重用。
软件这种东西要想做大,一是要重用,面向对象的开发包一定要好。二是要分工要好,
设计员,程序员,文员....,各尽其则,良好协作。三是开发工具要有效率。
网站程序应该是一个工程,里面有网页前台,也有核心后台。应该是界面-逻辑功能-数据库三层结构,每层不互相干扰,界面应该全部由网页设计师来做,核心代码应该由程序员来做。但现在开发动态网页,又要用html,又要用脚本语言,后台语言,增加开发难度,程序员有时要开发界面,对于没有美工基础的程序员来说界面开发不是容易的工作。解决这个问题就是分层。java 的布局管理器界面设计思想如果能在网页界面中能实现就好了。
如果你是微软的忠实拥护者你就使用asp
加一个引号就是servlet了。
不过,jsp的强项不在这里。因为再网页里面夹代码实现表示层。比用servlet一个一个的敲
html代码强多了。但是如果吧复杂的业务加到网业中同样不爽。
所以,工程里面一般是一个jsp,一个bean,或是servlet。用bean处理复杂逻辑。在或是servlet调用,servlet实现接收jsp表单请求。
如果用ejb,则用bean调用sessionbean,用sessionbean调用实体bean。
如果不用ejb,就用数据库连接池类负责数据库连接,用一个数据库控制类提供取得连接,释放连接的类。用bean实现数据库复杂操作,用jsp调用bean,用servlet接收post或是get方法。
ASP、PHP、JSP之比较(初学WEB动态编程且迷茫者看)