Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/OOP性能-方法与数组_Php_Performance_Oop - Fatal编程技术网

PHP/OOP性能-方法与数组

PHP/OOP性能-方法与数组,php,performance,oop,Php,Performance,Oop,在效率是一个主要问题的大型项目(每天约有200万用户)上使用Zend Framework或任何其他类似的框架,我想知道,无论何时需要访问$\u POST全局变量的数据,从性能角度来看,以下哪种方法更为优化 最好是调用多个可链接的方法,还是只调用一次,保存到一个变量中,然后只指定所需的键 方法1 方法2 对于多个键,例如至少5个或更多键。速度!=速度 这是一个很难回答的问题,因为你必须测试这些东西,因为这在很大程度上取决于硬件 一些公司倾向于采用“让我们添加ram”策略,而其他公司则采用“让我们添

在效率是一个主要问题的大型项目(每天约有200万用户)上使用Zend Framework或任何其他类似的框架,我想知道,无论何时需要访问$\u POST全局变量的数据,从性能角度来看,以下哪种方法更为优化

最好是调用多个可链接的方法,还是只调用一次,保存到一个变量中,然后只指定所需的键

方法1 方法2 对于多个键,例如至少5个或更多键。

速度!=速度 这是一个很难回答的问题,因为你必须测试这些东西,因为这在很大程度上取决于硬件

一些公司倾向于采用“让我们添加ram”策略,而其他公司则采用“让我们添加CPU”

你的例子解释了 这里的速度完全取决于getRequest()方法的复杂性。这是一个简单的回报;陈述这也不是问题,让编译器为您处理

您是否在执行某些逻辑(例如if-else语句)?您可能应该将结果“缓存”到变量中

$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);