2012-08-02 72 views
0

这不是关于微观优化的问题。我只是感兴趣,如果使用单引号字符串文字比使用双引号(因为不会发生变量扩展)更快。字符串文字使用单引号比双引号更快吗?

例子:

echo 'This is a string' # should a faster 
echo "This is a string" 

我试图来衡量这种(使用大循环和时间),但不能拿出一个真正的结论。

对此的任何想法?

编辑

我也有兴趣,为什么性能差异是如此之小......人们可能会认为变量扩展需要某种解析字符串,这将使一个显着的差异。

+0

不要这么想......即使它有我相信你可以忽略它 – Deqing 2012-08-02 07:32:17

回答

2

理论上是(因为它不会寻找$var等的扩展)。

在现实中,怀疑你会看到不同之处。

1

我相信它应该(只是一点点)更快。做一个小实验 - 用10000个符号回应一个字符串。在第一种情况下(双引号),你必须逃避它们,而在第二种情况下你不需要。第一个字符串是更长的两倍,因此处理它会更慢。这是一个极端的例子,我怀疑你会在现实生活中的任何地方观察到差异。

编辑:为了响应您的编辑。我相信在双重qoute情况下的解析使用确定的自动机发生,因此也是线性的。这只是猜测。你仍然可以想象变量解析是如何发生的 - 如果你看到非转义的$符号,那么你有一个变量可以遵循。