PHP7 JIT 相关开源项目(JPHP)

PHP 7.1 是否达到了最佳性能?

鸟哥惠新宸答:不能说最,别看 PHP 7.1 现在这么快,但相比其它语言,在某些场景下,还是有差距的。这跟它天然的像动态、符号表、间接引用等特性有很大关系。PHP 7.1 相比 7.0 来说,做的最大的工作,就是一个类型推断系统加一个类型相关的中间代码执行引擎。这个不是新的工作,在2013年我们做 PHP 5.5 的 JIT 的时候类型推断系统已经做出来了,但当时把这个项目停掉了,现在把那项工作其中的类型推断部分拿过来,放到 7.1 。基于这个类型推断未来还可以做更多的东西。PHP 7.1 更多的是对 7.0 未完成的工作的一个补充。
详情请移步:【开源访谈】鸟哥惠新宸:PHP 7.1 的新特性我并不是很喜欢

本人找了一个 PHP JIT 相关开源项目JPHP了解一下


JPHP是使用Java VM的PHP的新实现。它支持PHP语言(7.0+)的许多功能。

它是如何工作的?JPHP是一个编译器javac,它将PHP源代码编译成JVM字节码,然后可以在Java VM上执行结果。

  • 官方网站:j-php.net

在生产中

我们为初学者开发一个新的IDE,比如Game MakerScirra Construct。它基于JPHP,JavaFX,Java 8,Gradle,并允许为Linux,Windows和Mac(将来可能是Android和其他平台)创建桌面游戏和应用程序。项目名称是DevelNext(https://github.com/jphp-compiler/develnext),项目的当前状态和版本是BETA。该项目尚未被英文本地化。

目标

JPHP不是Zend PHP引擎或Facebook HHVM的替代品。我们不打算为JPHP实现zend运行时库(例如Curl,PRCE等)。

我们的项目于2013年10月开始。原因如下:

  1. 能够在PHP中使用Java库
  2. 通过JIT和JVM升级性能
  3. 用更好的运行时库替换Zend PHP的丑陋的运行时库。
  4. 不仅在网络上使用PHP语言
  5. 另外:字符串和线程的Unicode

特征

  • PHP 5.6+(以及PHP 7.0和7.1中的许多语言功能)。
  • JIT(约2.5倍PHP 5.6,PHP 7约1.1倍),Optimizer - 性能基准
  • 在PHP代码中使用java库和类。
  • Unicode字符串(UTF-16,就像Java一样)
  • 线程,套接字,环境架构(比如runkit zend扩展中的沙盒对象)。
  • GUI(摇摆或JavaFX)
  • 嵌入式缓存系统的类和功能
  • 可选的热重新加载类和功能
  • 能够在Android操作系统上使用 (还没)

JPHP从PHP 7.0,7.1支持什么?

  • 上下文敏感Lexer。
  • 修复list()行为不一致。
  • Throwable接口。
  • 组使用声明。
  • 标量和可选类型提示。
  • 返回类型提示。
  • 无效和可重写类型提示。
  • 统一变量语法(部分)。
  • 空合并运算符??
  • 多个catch语法。
  • 短列表语法。
  • 列表键。
  • 类常量可见性修饰符。
  • 太空船操作员<=>
  • 发电机代表团yield from
  • 发生器返回表达式。
  • intdiv() 功能。

文档

  • Wiki在这里:阅读
  • 你可以在这里找到最新的api文档:http : //jphp-docs.readthedocs.org/
  • 为了对api文档作出贡献,你可以分叉docs项目:https://github.com/jphp-compiler/docs

入门(Hello World)

http://j-php.net/wiki/Getting-started

热跑基准?

// via jphp
./gradlew bench

// via php
php -f bench/src/bench.php

从源代码构建SNAPSHOT

使用gradle install来构建和安装jphp模块和库到本地mavel库。在此之后,您可以在您的项目中使用jphp作为maven依赖项。

org.develnext.jphp:jphp-:-SNAPSHOT


原文:https://github.com/jphp-compiler/jphp

你可能感兴趣的:(PHP7 JIT 相关开源项目(JPHP))