PHP的哪些语言特征在合适的场景中可以显著减少程序的内存开销?
PHP的哪些语言特征在合适的场景中可以显著减少程序的内存开销?
- A: Trait
- B: Generator
- C: SPL
- D: Type hint
我认为:
首先排除A和D,D指的是类型声明。
Generator在减少内存方面是有争议的,从本质上将,Generator无法减少内存开销,Generator只是通过
yield
改变了代码执行顺序,目前Generator使用比较广泛的应用就是协程调度,比如amp框架。关于协程调度可以阅读这篇文章:www.laruence.com/2015/05/28/3038.h...既然是节省内存开销,肯定是和数据结构有关系,在SPL中有一个SplFixedArray类,当数组比较大时,可以有效的减少内存的占用,具体效果可以看一下php-arrays-in-memory-comparison,SplFixedArray有很多限制,在使用方便程度上,不如Array,具体限制可以查看官方文档。
这题我做过,答案是B。
考的就是对生成器(Generator)的了解。社区里也有相关文章。