搞php以后,感觉总是很别扭,因为我觉得php会很慢,因为array普遍,在Key的循环查找不是很浪费性能么!因为我以前搞.net和java,他们是用的大多是寻址和索引方式,而php中太多是使用Key名称去调用值。这不是太浪费性能吗!
实际上php上array确实有点浪费性能,不想我想象中的哪样不堪,在阅读PHP源码时发现,php在配对时使用了HashCode进行配对,存储时也存放了HashCode,在查找值时通过Hashcode进行配对,这大大减轻了配对成本。而在phper的角度来看,这点性能对于灵活度而言,是可以不计的吧!
2、php中的引用类型
因为我是从java/.net程序员转行到php,总是以他们的角度来思考php的运行,结果我差点气的又放弃php,但经过阅读一篇php引用类型的文章后改变了一点观点。在.net中,int a=1,b=a;时,会开辟两个内存空间来存储两个变量,而在php中并非如此,php会把第二个变量指向a的内存地址,只是在b写入时才会开辟空间。这在海量的变量中节省了不知道多少内存。因为当初我还疑惑是不是把函数前和循环时都加上&附号,以避免重复内存的浪费,当了解到有“写复制”的特性时,真的觉得这个设计太高明了!
看来php占据web市场不是没有理由的,他的灵活高性能,让人觉得他就是一个艺术品。
时间: 2024-10-10 14:33:53