(1)运转机制
Java代码被编译成字节码后,会在虚拟机里由JIT举行二次编译成为当地码,据传言其实行速率能够和C++相媲美,经由我自身测试,用Java完成一个简朴的Memcache协定的缓存服务器,在Java 1.6下运转,和memcache自身比拟,一样数据量的存取时候比大概是3:2,虽然有差异,然则比设想的要好许多。Java 1.7在JIT方面做了大批的革新,机能比Java 1.6还要好。
PHP是直接对文本代码举行诠释实行,即使有opcode缓存手艺,依然有不可逾越的机能鸿沟。PHP的opcode相似于java的class字节码,还是诠释实行。
(2)处置惩罚并发
Java在并发处置惩罚上采纳单历程多线程的体式格局,web运用会跟着web server的启动而启动,而来自web 浏览器的要求将被分配给线程池内的闲置线程处置惩罚,也就是说当有要求抵达的时刻,历程是准备好的,线程是准备好的,Java要做的仅仅是营业逻辑处置惩罚了。
PHP在并发处置惩罚上时采纳多历程的体式格局,在web server里没有物理的web运用观点,每一个要求都相当于一个自力的运用,而历程也跟着要求的抵达才启动,而跟着要求的完毕而灭亡。在Fast CGI环境下,有相似于线程池的历程池手艺,对机能进步有很大的协助。但是一方面web server和Fast cgi通信仍须要经由历程socket,多出了肯定的IO消耗,另一方面历程池内的历程间也很难举行通信,所以在并发处置惩罚上依然没法和Java比拟。
(3)数据库运用
Java能够采纳数据库衔接池手艺,节省下数据库衔接历程带来的时候丧失。
PHP没有这个优点,缘由来自上面的第二条。
在数据库接口上java有JDBC,PHP有PDO,这两个很相似。但是Java有非常多的ORM手艺框架(如Hibernate)使数据库操纵变得非常简朴,而PHP的运转体式格局决议了它是ORM的禁区(固然也能够做ORM,只是做到什么水平是由你对ORM带来的机能消耗的忍耐水平决议的)。
(4)缓存手艺
Java是单历程,许多缓存能够直接在Java的heap中做,而无需借助外在的东西,固然也有很好的缓存框架,比方Ehcache,由于没有收集IO,所以机能非常高。
PHP多历程单线程决议了它只能借助外来的缓存服务器,比方Memcache.
(5)热布置
Java的热布置才能很弱,假如愿望修个BUG而不断服是很难做到的。PHP天然热布置。
(6)开辟本钱
一个好Java程序员所需的学问贮备更多,开辟、调试所需的周期较长,好点的web server也都是收费的。PHP免费、web server也免费。
(7)平安性
这个要看你怎样来定义平安性,假如是代码平安,java class反编译很轻易,这点上来讲二者差不多。Java有平安设置机制可保证一些“非法操纵”没法实行,这点上来讲PHP较弱。但是Java很轻易由于一个BUG致使全部运用宕掉,PHP就平安的多。
以上就是php和java有什么区分的细致内容,更多请关注ki4网别的相干文章!