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