PHP/OOP性能-方法与数组
在效率是一个主要问题的大型项目(每天约有200万用户)上使用Zend Framework或任何其他类似的框架,我想知道,无论何时需要访问$\u POST全局变量的数据,从性能角度来看,以下哪种方法更为优化 最好是调用多个可链接的方法,还是只调用一次,保存到一个变量中,然后只指定所需的键 方法1 方法2 对于多个键,例如至少5个或更多键。速度!=速度 这是一个很难回答的问题,因为你必须测试这些东西,因为这在很大程度上取决于硬件 一些公司倾向于采用“让我们添加ram”策略,而其他公司则采用“让我们添加CPU” 你的例子解释了 这里的速度完全取决于getRequest()方法的复杂性。这是一个简单的回报;陈述这也不是问题,让编译器为您处理 您是否在执行某些逻辑(例如if-else语句)?您可能应该将结果“缓存”到变量中PHP/OOP性能-方法与数组,php,performance,oop,Php,Performance,Oop,在效率是一个主要问题的大型项目(每天约有200万用户)上使用Zend Framework或任何其他类似的框架,我想知道,无论何时需要访问$\u POST全局变量的数据,从性能角度来看,以下哪种方法更为优化 最好是调用多个可链接的方法,还是只调用一次,保存到一个变量中,然后只指定所需的键 方法1 方法2 对于多个键,例如至少5个或更多键。速度!=速度 这是一个很难回答的问题,因为你必须测试这些东西,因为这在很大程度上取决于硬件 一些公司倾向于采用“让我们添加ram”策略,而其他公司则采用“让我们添
$request = $this->getRequest();
这不会消耗额外的内存,因为$request在内部只是指向请求对象的指针
第二种方法:
$post = $this->getRequest()->getPost();
echo $post['key1] . $post['key2'];
这很糟糕。返回时复制数组(与对象相反)
$post现在是您在请求对象中拥有的数据的副本。因此,使用额外的ram。选择项目当然会比选择项目时调用方法更快。但是它使用了更多的内存。并且$post越大,使用的ram就越多
再一次,速度!=速度
然而,它是一个小数组吗?你的应用程序慢吗?这样做并不能解决速度问题。让它容易阅读!挑一个;)
旁注
然而,我确实看到一些难闻的代码。您在一个对象中(您正在使用$this)。您正在使用getRequest()方法获取另一个对象。你用那种方法干什么?创建一个对象?看起来像是紧密耦合
也许您应该在构造函数中重试请求对象,然后简单地:
$this->request->getParam($ket);
更快、更好、更容易阅读和理解。但话说回来,这只是一个假设;)如果不获得更多请求上下文和参数数量,很难说,只需检查一下即可。测试并获得结果。这是唯一的方法。为什么不自己测试呢?我想直接调用它们会更快,因为你不初始化任何变量,只直接访问属性
$request = $this->getRequest();
$post = $this->getRequest()->getPost();
echo $post['key1] . $post['key2'];
$this->request->getParam($ket);