【发布时间】:2023-03-07 02:18:01
【问题描述】:
当我不需要任何相关的数组功能时,是否可以使用 PHP 的 array 的轻量级替代品?据我所知,array 在内部是一个哈希映射,对于存储简单的元素数组来说是过度且低效的。如果 PHP 有一个类似于 C++ 的std::vector 的类或编程结构,那就太好了。
【问题讨论】:
-
来自the documentation:[PHP 数组] 针对多种不同用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 你想做什么,具体来说,数组在哪里给你添麻烦了吗?
-
具体来说,PHP“数组”同时实现为哈希表和双向链表。虽然这确实意味着插入和删除操作会带来一些额外的开销来维护各种指针,但所有类型的检索都得到了相当大的优化。
-
@IMSoP 那么不仅PHP的原生数组在时间方面效率低下,而且在内存方面也是如此?
-
@DesmondHume 实际上我试图反驳相反的观点。请记住,PHP 是一种高级语言:即使是单个整数也被实现为一个相对复杂的结构来管理写时复制、类型处理、内存管理等。如果你'重新寻找紧凑的内存结构,使用较低级别的语言。
-
这听起来有点像过早的优化。或者您在项目中是否遇到了原生数组存在问题的具体案例?
标签: php arrays performance