php - __get/__set/__call PHP性能问题

标签 php performance magic-methods

我有一个定制的 MVC PHP 框架,我正在重写它并且对性能和魔术方法有疑问。对于框架的模型部分,我在想如果 __get/__set 魔法方法会导致太多的性能损失而不值得使用。我的意思是访问(读取和写入)模型数据将成为最常见的事情之一。 __get/__set 魔术方法的使用是否对重度使用功能(如 MVC 框架的模型部分)的性能影响太大?

最佳答案

测量它。

它肯定会对性能造成很大影响,尤其是考虑到函数调用在 PHP 中的开销很大。在下一个版本的 PHP 中,这种差异会更大,它实现了优化,可以显着更快地定期访问已声明的实例属性。

也就是说,PHP 很少是瓶颈。 I/O 和数据库查询通常需要更多时间。但是,这取决于您的使用情况;确定基准的唯一方法。

这也是魔术方法的其他可读性问题。它们经常退化为一个大的 switch 语句并损害代码完成,这两者都可能会影响编程效率。

关于php - __get/__set/__call PHP性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3330852/

相关文章:

Java Tilemaps 使用 Cliping 来提高帧速率 : What can go WRONG?

javascript - 为什么使用 for 比 some() 或 filter() 更快

performance - 如何在 MATLAB 中编写矢量化函数

php - 如何将对象用作数组?

PHP 和 AJAX 网页内容

php - 根据已完成的搜索来搜索mysql数据库

php - 无法在数据库中插入记录

php - SQL select查询3个表并将结果放入一个数组中,递增1

php - 魔术方法是 PHP 中的最佳实践吗?

php - 只读多维数组属性,PHP