写点什么

高性能 PHP 支持静态类型

  • 2013-05-30
  • 本文字数:746 字

    阅读完需:约 2 分钟

PHP+QB 是一个可选的 PHP 虚拟机,它声称在性能上提供了数量级的提升。而负面影响就是它需要所有的内容都必须是静态类型,同时也对数组做了一些限制。

静态 类型声明 是通过PHPDoc 语法的一个扩展添加的。方法需要使用“@engine qb”标记以便声明它们需要在PHP+QB 虚拟机中执行。然后你还必须使用常用的PHPDoc 语法标记返回值、参数以及全局变量的类型。本地变量需要通过@local 标记声明。

在PHP+QB 中,数组和常用的PHP 数组有所区别。文档中是这样说明的:

在PHP 中数组是非常复杂的数据容器。你可以用它存储任何内容。可以通过一个文本字符串或者一个数字引用元素。不同的元素实际上可以是同一个对象。一个数组甚至可以包含它自己。你能够使用PHP 数组构建非常复杂的、有用的结构。然而这种能力和扩展性并非没有成本。如果使用数百万的元素,那么性能和内存负载可能会高的让人难以忍受。

相对而言,PHP+QB 中的数组是非常简单的。我们通常将它称之为C-Array。本质上,在PHP+QB 中,一个数组仅仅是内存中的一个大对象。它的元素按照一个挨着一个的简单方式进行存储。你仅能够通过数字索引引用它们。和正常的PHP 不同的是,在PHP+QB 中插入的顺序也无所谓。在PHP+QB 中, foreach 循环中的$array[0] 无论如何都会出现在$array[1] 前面。

PHP+QB 中的数组可能是固定大小的也可以是动态扩容的。对于能够扩容的数组而言,如果其中的元素被移除,那么它并不会自动收缩,你需要调用 unset() 函数才能进行收缩。

该引擎支持完整范围的有符号和无符号整数类型,以及32 位和64 位浮点数类型。字符串由一个整数数组进行表示。尽管增加了PHP+QB 支持标记的方法依然能够访问$this 变量的属性,但是该引擎并不支持对象。

查看英文原文 High Performance PHP with Static Typing

2013-05-30 09:072129
用户头像

发布了 321 篇内容, 共 110.7 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

我也想说说日志,但是我不想说漏洞。

why技术

Android C++系列:Linux Socket编程(二)网络套接字函数

轻口味

28天写作 Android; 12月日更

深入浅出 Java 中枚举的实现原理

恒生LIGHT云社区

Java 编程语言 枚举

云原生时代,领域驱动设计思想(DDD)如何落地?

华为云开发者联盟

软件架构 架构设计 建模 领域驱动设计思想 领域模型

观测云高分通过等保三级认证,信息安全体系建设领先行业

观测云

iOS 开发者福音:iOS 项目也能支持 MQTT 5.0 啦!

EMQ映云科技

ios mqtt emq tvos osx

❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(免费送完整源码)❤️

海拥(haiyong.site)

响应式 大前端 28天写作 签约计划第二季 12月日更

dart系列之:安全看我,dart中的安全特性null safety

程序那些事

flutter dart 程序那些事 12月日更 flutter 调试工具

OPPO云VPC网络实践

OPPO数智技术

云计算 SDN架构 智能网卡vpc

存储空间降为原来的1/7,TDengine在中移物联网轨迹数据存储中的应用

TDengine

数据库 tdengine 时序数据库

【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析

洛神灬殇

Spring Cloud api 网关 SpringCloud Gateway API Gateway 12月日更

百度搜索中“鱼龙混杂”的加盟信息,如何靠AI 解决?

百度Geek说

架构 AI 后端 百度搜索

JavaMoney规范(JSR 354)与对应实现解读

vivo互联网技术

Java、 API 虚拟化 虚拟货币

龙蜥社区一周动态 | 12.06-12.10

OpenAnolis小助手

龙蜥社区

使用 scipy.fft 进行Fourier Transform:Python 信号处理

华为云开发者联盟

Python 音频 信号处理 傅立叶变换 Fourier transform

基于JSX的全新BDD工具 - Crius

RingCentral铃盛

大数据开发之数仓工具Hive(一)

@零度

大数据 hive 数仓工具

技术分享| Linux高并发踩过的坑及性能优化

anyRTC开发者

Linux 音视频 高并发 服务器 高并发优化

在中国如何打造一个有生命力的开源项目?

Jianmu

DevOps 持续集成 CI/CD 开源社区 持续部署

前端开发之cypress的自动化实践

@零度

前端 Cypress

Linux一学就会之LVM管理和SSM存储管理器使用

学神来啦

Linux centos 运维 lvm linux云计算

Linux学习方法《Linux一学就会》:网络管理技术

侠盗安全

Linux linux运维 运维工程师 云计算架构师

「可观测产品首发」观测云免费版正式上线!开箱即用,观测无限

观测云

Linux之rm命令

入门小站

Linux

Vue之全局事件总线和消息订阅与发布

编程江湖

前端开发

阿里巴巴、埃森哲、德勤三方圆桌对话——《与数字化先锋共绘创新蓝图》

大咖说

阿里巴巴 大咖说 数字经济 数智化

拥抱开源,共建生态!观测云 DataFlux-Func 代码全部开源

观测云

高性能PHP支持静态类型_PHP_Jonathan Allen_InfoQ精选文章