
学php中发现了spl,不知道在使用中是否有性能提升,或者根本就没用,大神们来给我解答下。
1 lxrmido 2015 年 4 月 23 日 SPL的主要价值不是提升性能,而是提升开发效率 |
2 anewg 2015 年 4 月 23 日 看成sql,差点开喷楼主。。罪过 |
3 jevonszmx 2015 年 4 月 23 日 写了N多年php代码了,性能瓶颈基本都不是php的问题,除非代码写的特别烂,比如效率差的循环/递归、循环查数据库之类的。 一般性能影响最大的,还是数据库。 |
5 tini19 2015 年 4 月 23 日 使用函数,绝不使用class,面向过程编程,是提升php性能的最佳途径 |
6 jugelizi 2015 年 4 月 23 日 简直就是灾难 |
7 imn1 2015 年 4 月 23 日 用 SPL 代码短很多,我试过几十行代码变成几行 性能提升不大,甚至下降,不过我的知识停留在几年前了 |
9 imn1 2015 年 4 月 23 日 SPL中的递归器我用的最多,比自己写递归函数省事多了 |
10 yakczh 2015 年 4 月 23 日 有测试数据吗? |
11 dhlwing 2015 年 4 月 23 日 可读性和debug的时候会有一点障碍吧 |
12 jevonszmx 2015 年 4 月 23 日 @RihcardLu 读写量太大的话,一般问题是会导致锁表(索引设置不合理,会导致写频繁时性能问题),最简单的方法就是读写分离。但是读写分离会有几个问题,1是读写分离数据同步会有延迟(我们运营老是抱怨后台操作了没反应,刷几次才有效果,哈哈~~),2是程序需要方便支持切换读写库(用主流框架就会好很多)。 想要性能更好,也可以中间加一层缓存,比如: 微博这样的场景:用户读微博列表,发微博,再刷新看最新微博。 用户读微博列表:是从缓存读(如果逻辑改动太多,也可以改成读db,然后被动更新缓存); 发微博:直接更新缓存(异步入库,或者推入待入库队列写入数据库中); 再刷新看最新微博:是从缓存读 这样做,读的压力基本上是缓存,写的时候因为也是更新缓存,所以写入后用户再读数据,还是从缓存读,大大减轻db压力。 ps~~ 缓存推荐使用redis,渣浪微博有几次服务器挂了,可是还能看微博,应该就是redis服务器还健在~~ |
13 raincious 2015 年 4 月 23 日 SPL = Stand PHP Library,只是提供一个标准的接口和方法,没有其他的意义(比如做出“用我更快”的保证)。 因此,楼上都对。 @jevonszmx @RihcardLu 你们竟然在歪楼。 @cevincheung 楼主,这是你失散已久的兄弟么? |
15 raincious 2015 年 4 月 23 日 @Nicksxs 这……完全不是一回事。还是我#13说的,提供一套接口和方法而已。 建议楼主看看: http://php.net/manual/zh/book.spl.php 事实上你很早(5.4)就能在函数参数上检查压入的类型了,比如function myFunction(MyClass $instance),这个和SPL的关系可能仅仅是你能够function myFunction(ArrayIterator $iteratorInstance)这样(吧?) 关于严格类型检查: http://php.net/manual/en/language.oop5.typehinting.php |
16 cevincheung 2015 年 4 月 23 日 我是来围观的。不要看我的头像。 |
18 jevonszmx 2015 年 4 月 23 日 @cevincheung 围观萌头像 |