Java为啥比PHP快?

Java为啥比PHP快?,第1张

Java为啥比PHP快? 一直都说php比java要慢,今天从理论跟实际测试看看php是否真的慢,慢在哪里 一: 运行模式对比

java:一般用java 语言开发的网站项目都是以命令行模式运行,部分可能以可执行文件(.exe)的形式运行;
php:主要以cgi模式运行,部分以cli模式运行,如swoole 拓展;
php cgi 模式下每次请求进来都需要以进程的方式执行php代码,创建进程以及进程切换都需要消耗不少资源;
优化方案:1:FPM 进程池保持一定活跃进程,做到进程重用
2:使用swoole 拓展,将php以cli模式执行,这模式上就跟java类似了;

二: 代码执行模式

java:执行前需要编译为jvm的字节码(不是cpu的字节码),代码执行直接解析字节码或者将字节码编译为机器二进制码后执行
php:每次请求进来都需要经过代码分析->解析->编译opcode->执行的流程,前面3步比起java都是额外的损耗
优化方案:php开启opcache缓存(5.5以后官方自带拓展),可以省去前面3步的重复工作;
php执行流程请参考:PHP执行流程简述

三:语言特性

从整个语言编译执行流程上来看,php经过上面的优化效率应该跟java不相上下才对,下面单从语言上对php 跟java做一次测试;

测试环境:Windows 10 64位 cpu i5 内存8g
java版本:jdk 10
php版本:php 8.0.14
测试功能:用两种语言实现相同数据量(2w个整数)的冒泡排序,对比双方执行时间;

代码如下:

java 代码

public class Test {

    public static void main(String[] args) {

        long st=System.currentTimeMillis();
        int count=20000;//这个数考虑到php 执行时间,选取了这个,越大对java 越有利
        int[] arr=new int[count];
        //数组赋值随机数
        for (int i=0;i
						

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5684862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存