As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




已关闭8年。




假设我们有一个很大的字符串$str,我们需要将它的很大一部分(假设整个字符串,但没有前3个字节)传递给一个函数。用substr做到的方式:
consumer_function(substr($str, 3));

效率似乎不太高,因为substr似乎可以在返回结果之前将字符从初始字符串复制到新字符串中。有什么办法可以在不过度复制的情况下将字符串的大部分传递给函数?我们无法更改该函数的代码。

最佳答案

我看不到这里有问题。您正在猜测存在问题,而没有理由认为存在问题。

“似乎效率不高”不是问题。如果您测量它并发现它很慢,那么您就有问题了。然后,在代码上使用类似XDebug的探查器,看看是否可以找到代码的哪些部分运行缓慢。

如果您没有问题,那么您将无法解决,并且猜测可能看起来很慢的情况并不意味着您有问题。

优化俱乐部的规则:

  • 优化俱乐部的第一条规则是,您不优化。

  • 优化俱乐部的第二条规则是,如果没有
    测量。
  • 如果您的应用程序运行速度比基础运行速度快
    传输协议(protocol),优化结束。
  • 一次一个因素。
  • 没有marketroids,没有marketroid时间表。
  • 测试将持续很长时间
    尽其所能。
  • 如果这是您在Optimization Club的第一晚,您
    必须写一个测试用例。
  • 关于php - 有效替代substr?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14131363/

    10-12 23:25