为什么淘宝会从PHP换成Java,是不是Java比PHP性能好?

 

Php和Java到底有啥区别?

1. PHP即写即用。代码发生改变,马上就可以看到效果。Java就远没有这么灵活,代码改变后要编译、重启jvm,增加了时间消耗,JVM重启也会造成用户响应中断。

2. Php的看起来思路清晰。字如其义比,echo "hello world"就是输出hello world,而java则不同,你可能是写response,或者在session中,也可能就是返回了该字符串,然后不知道怎么的,它就显示到页面上了。

3. Php代码效率高。Php的高效是显而易见的,你不考虑后期的性能和用户量问题的话,实现一个需求那是很快的,甚至不用框架,直接写也会非常快。一个增删改查功能,三五几十行代码就搞定了。而java就慢多了,首先要想一下用什么框架,目前基本上就是spring了,然后就是配置各种数据库,过滤器,servlet,依赖,决定是用mybatis还是hibernate,然后考虑代码之间的传递、事务管理, 然后不停调试,一改代码可能就是几分钟的等待时间,可想而知。

4. Php占用资源少。php是进程式处理问题的,占用内存相当少,可以说,你在一台机器部署50个项目没有任何问题,只要访问量不上来,搞得定。而java就不行了,java每启动一个项目,本身就得耗尽许多内存,比如在一台8g内存的机器上,一般跑上2个项目就差不多了。

Java:

1 . java组件多。我个人觉得单是这一点就盖过其他所有优点了,因为组件多,意味着用的人多,群众的眼睛是雪亮的。所以,java一定是好的,它已经积淀了太多的东西,不是一门新型语言能够随便替代的。你想要做什么,好好搜索java组件,可能都有你需要的功能,特别对于当下最流行的大数据产业,java更是占据一方。而php在这种场景就有点无能为力了。

2 . java线程池,连接池,异步化方便。其实这一点和第一点也很相似,也是因为组件多,所以要使用线程池连接池都很方便,这对于高并发高性能的场景来说,是绝对必要的。因为java的运行原因就是多线程的,所以不用每次都去初始化很多基本的东西,这省去了太多的时间,也因此大家可以忍受服务器启动的缓慢过程,因为只有一次。而php则是多进程的,每次都需要重新加载所有需要的代码,也因此无法将一些常用数据保存在内存,连接池也不大好做,异步操作更是一个大短板。

3 . java是真正意义上的逻辑清晰。因为,java中,你可以从一个进入可以借助IDE工具分析到最深层次的逻辑操作,对于每个字段,都可以清晰明了,这其实是接口和完全对象的一个使用优点。而php则做不了或者说很少有人费那劲去做这种事情,php可以说是半面向对象半面向过程开发,所以,在调用过程中插入几个自定义的函数调用是很正常的,那么你再想通过简单的IDE去分析调用链就不那么容易了。比如,对于第三方提供的接口,php就很难清楚的看出接口返回了什么,除非你把它打印出来,但是打印出来也不一定对,因为有些返回值的数据不一定有体现。这对于理解代码来说,增加了一个大大的门坎。

4 . 虽说java编译比较烦,但是可以为你提前发现错误。java的编译的确比较耗时,但是如果有明显的错误,编译是不会通过的,这就给你一个重新检查代码的机会。而php则不会,不管你写得多烂,都不会给你提示什么,而许多时候,往往就因为少写了个;分号,导致你排查数小时。

5 . java远程调用方便,rmi,hessian,dubbo。不管怎么样,远程和本地调用都很方便的知道相关的信息,而且java的同语言调用不是采用纯粹的http调用,而且维护一定的连接,从而大大提高性能。而php也有远程调用,但是相对来说就弱许多了。

php和java基本区别是,java是全面性语言(桌面、手机、服务器、控制台、图形界面),php设计是为服务器脚本输出。

小编是一个有着5年工作经验的java'开发工程师,关于java'编程,自己有做材料的整合,一个完整的java编程学习路线,学习材料和工具,能够进我的群收取,免费送给**723197800**大家,希望你也能凭着自己的努力,成为下一个优秀的程序员。

 

更多推荐

为什么淘宝会从PHP换成Java,是不是Java比PHP性能好?