Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 更好的性能还是更好的结构_Php_Database - Fatal编程技术网

Php 更好的性能还是更好的结构

Php 更好的性能还是更好的结构,php,database,Php,Database,更好的性能: list($result1,$result2,$result3,$result4)=get_all_result(); sql查询的总数更少,性能也更好,但很难重用 更好的结构: $result1=module1_get_result(); $result2=module2_get_result(); $result3=module3_get_result(); $result4=module4_get_result(); 它需要更多的查询,所以性能有点差。但是结构更清晰 你喜

更好的性能:

list($result1,$result2,$result3,$result4)=get_all_result();
sql查询的总数更少,性能也更好,但很难重用

更好的结构:

$result1=module1_get_result();
$result2=module2_get_result();
$result3=module3_get_result();
$result4=module4_get_result();
它需要更多的查询,所以性能有点差。但是结构更清晰


你喜欢哪一种?

那么,性能有多重要

与后者增加的重用性/可维护性相比,它值得吗?

这取决于


对于应用程序的关键路径,您可能必须编写难以读取和维护的高性能代码,但在确定实际问题后,最好进行优化。对于其余部分,我通常更喜欢可维护性而不是高性能

因为您的代码看起来像PHP代码,所以我假设它是PHP

如果使用数组,性能和可读性都会更好

$results = get_all_result();
//the above should return an array, so you can access
//$results['result1'], $results['result2'], $results['result3'], $results['result4']
呼叫次数越少,性能越好。将结果存储在数组或对象中以提高可读性

此外,过早优化也是有害的。您应该创建可维护的代码,因为创建只占您所做工作的10%左右。90%的代码生命周期是为了维护它,无论是bug修复、更改特性、添加新特性等等。可维护的代码也会有更少的bug,因为它的编写方式更容易发现bug。

如果
get_all_result()
返回一个数字索引数组(1,2,3,…),为什么不:


这似乎是一个完美的选择。

标记为php,如果不正确,请更改它。使用extract()就像使用eval()。它功能强大,工作正常,但在使用它之前应该三思而后行。@MichałRudnicki:我不会将
extract()
eval()
进行比较,
register\u globals=on
在使用
extract()
只有一个参数时更适合进行比较。例如,
extract($arr,EXTR\u SKIP)
是相当无害的。为了记录在案,我认为我的答案没有错,我不理解向下投票。Alix,数据成为代码的一般想法离良好的编程实践还差得远。它使代码变得聪明。聪明的代码很难调试。extract()将数组键转换为变量,而不知道实际发生了什么。霍尔实际上说的是“我们应该忘记小效率,比如说97%的时间:过早优化是万恶之源。”他并不是主张我们忽略设计对代码性能的所有影响。他当然不是说我们根本不应该优化代码。如果一种方法显然很糟糕,那么我们应该重写它。我们不需要担心节省毫秒,除非这些毫秒对我们的应用程序的成功至关重要。谢谢你提供的信息。我在某个地方读过,但忘了是谁写的和确切的单词。我遇到过这样的情况:我构建的应用程序运行速度慢,有数千个数据。通过使用可维护的代码创建应用程序,我的同事和我可以优化应用程序,使其运行速度快很多倍。这就是为什么我要指出,拥有可维护的代码比试图编写优化代码更重要,但却很难通过隐藏代码来维护。
extract(get_all_result(), EXTR_PREFIX_ALL, 'result');