【问题标题】:Pre defined functions vs User Defined?预定义功能与用户定义?
【发布时间】:2011-06-20 09:24:06
【问题描述】:

我在 php 中编码,并参加了一个编码竞赛,该竞赛根据内存使用情况、运行时间以及当然算法的准确性给脚本打分。 我得到了正确的算法并适用于所有测试用例。但是我得到的分数比我预期的要少一些。 为了节省代码行,我在循环中使用了 strpos() 函数。 当我将 strpos() 函数更改为手动查找我创建的字符串函数时,我的分数增加了...... 现在我很困惑……我想如果我使用自己定义的函数而不是我使用的所有库函数(strlen、strpos 等),我可以提出更多观点……

在脚本中创建我们自己定义的函数是否有助于使代码更快? 我不是专业人士,但在 php 领域工作了 3-4 年,之前从未想过节省时间/内存:P 所以我有点卡在这里......

【问题讨论】:

  • 不,内置函数通常更快(或至少不慢)。
  • 你定义了什么函数,你用它来代替strpos
  • 请用句号替换其中的一些逗号。很难看出一个句子应该在哪里结束。
  • 你可以使用Xdebug来分析PHP代码。
  • @Dogbert,在我的代码中,有一个部分我必须在整个矩阵中只找到一个字符,所以首先我在矩阵的每一行上使用 strpos 来保存一个循环。但是后来我用检查嵌套循环中的每个字符来替换它,这给了我更多的分数......不知道怎么做! ...

标签: php


【解决方案1】:

一般来说,用于字符串操作等基本功能的内置函数往往比您自己编写的任何代码都快。

根据TuxRadar,PHP内置函数使用

高度优化的 C 代码可能 尽可能快。

所以“使用 PHP 重写内置函数再好不过了”。

在 PHP 中编写函数的部分性能问题是 PHP 代码在运行之前通常不会被编译,而是被解释。我想我不久前在网上读到一些 Facebook 工程师实际上写了一个 PHP 编译器或其他东西……但我可能是错的,我不太记得了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2016-03-07
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多