TL; DR
串联速度更快且更一致。但是,对于1个或2个变量而言,差异很小(对于1亿个调用,其间隔不到0.3秒)。
编辑
在第二轮运行之后,连接似乎似乎是两者中最快的。
因此,我想提供一个更广泛的测试,并(稍微)考察一下这两个功能的可扩展性,以扩展模拟尼古的答案。
pastebin上的代码
我决定为每个函数使用四个测试用例,在前面有一个变量,在结尾有一个变量,在中间有一个变量,在中间有两个变量。基本设置是相同的。我仅使用该函数的100,000,000次迭代,这些迭代运行了100次。我使用了相同的机制来防止优化,即获取结果字符串的长度之和并将其记录下来。我还记录了所需的时间(让我猜猜要花多长时间),还将其保存到数组中。
然后,我计算了每种方法的平均值,最小值,最大值和标准差。
结果如下:
{ 
  sum: { 
    t: { 
      start: 2072751, 
      mid: 2338476, 
      end: 2083695, 
      double: 2950287 
    },
    c: { 
      start: 2086059, 
      mid: 2345551, 
      end: 2074732, 
      double: 2922929 
    } 
  },
  avg: { 
    t: { 
      start: 20727.51,
      mid: 23384.76,
      end: 20836.95,
      double: 29502.87 
    },
    c: { 
      start: 20860.59,
      mid: 23455.51,
      end: 20747.32,
      double: 29229.29 
    } 
  },
  sd: {
    t: {
      start: 335.6251329981114,
      mid: 282.9490809315344,
      end: 286.2220947096852,
      double: 216.40844045461824 
    },
    c: {
      start: 255.4803356424913,
      mid: 221.48744862858484,
      end: 238.98242111084238,
      double: 209.9309074433776 
    } 
  },
  min: { 
    t: { 
      start: 20490, 
      mid: 23216, 
      end: 20588, 
      double: 29271 
    },
    c: { 
      start: 20660, 
      mid: 23258, 
      end: 20534, 
      double: 28985 
    } 
  },
  max: { 
    t: { 
      start: 23279, 
      mid: 25616, 
      end: 22887, 
      double: 30843 
    },
    c: { 
      start: 22603, 
      mid: 25062, 
      end: 22403, 
      double: 30536 
    } 
  } 
}
在值t-objects是模板,在值c-objects是串联。start表示变量在开头,中间在中间,结尾在结尾,是两个变量的两倍。sum是所有100次跑步的总和。avg是平均跑步次数,表示是sum / 100。sd 维基百科(简单的英语),这是简单的出路。min和max是运行的最小值和最大值。
结果
考虑到平均值较低而最小值较低,对于不位于字符串末尾的单个变量来说,模板似乎更快。如果将变量放在字符串的末尾或字符串中有多个变量,则串联会更快。
尽管就前两个条件而言,模板的最小值和平均值均优于其并置模板,但标准偏差始终较差。差异似乎随着更多变量而缩小(需要更多测试)。
由于大多数模板可能不会仅用于一个字符串中的一个变量,因此可以说坚持连接可以产生更好的性能。但是,差异(至少目前)很小。在具有两个变量的100,000,000(1亿)次评估中,差异仅为273.58毫秒,大约是四分之一秒...
第二次跑
第二轮运行看起来有些不同。除了最大值,平均绝对偏差和标准偏差外,每次测量都证明级联比模板快。
当变量位于字符串末尾或字符串中有两个变量时,上述三个测量值的模板值较低(因此更好)。
结果如下:
{
  "sum": {
    "t": {
      "start": 1785103,
      "mid": 1826679,
      "end": 1719594,
      "double": 2110823,
      "many": 4153368
    },
    "c": {
      "start": 1720260,
      "mid": 1799579,
      "end": 1716883,
      "double": 2097473,
      "many": 3836265
    }
  },
  "avg": {
    "t": {
      "start": 17851.03,
      "mid": 18266.79,
      "end": 17195.94,
      "double": 21108.23,
      "many": 41533.68
    },
    "c": {
      "start": 17202.6,
      "mid": 17995.79,
      "end": 17168.83,
      "double": 20974.73,
      "many": 38362.65
    }
  },
  "sd": {
    "t": {
      "start": 858.7857061572462,
      "mid": 886.0941856823124,
      "end": 786.5366719994689,
      "double": 905.5376950188214,
      "many": 1744.9005638144542
    },
    "c": {
      "start": 599.0468429096342,
      "mid": 719.1084521127534,
      "end": 935.9367719563112,
      "double": 991.5642274204934,
      "many": 1465.1116774840066
    }
  },
  "aad": {
    "t": {
      "start": 579.1207999999996,
      "mid": 576.5628000000003,
      "end": 526.8268,
      "double": 586.9651999999998,
      "many": 1135.9432000000002
    },
    "c": {
      "start": 467.96399999999966,
      "mid": 443.09220000000016,
      "end": 551.1318000000008,
      "double": 610.2321999999999,
      "many": 1020.1310000000003
    }
  },
  "min": {
    "t": {
      "start": 16932,
      "mid": 17238,
      "end": 16387,
      "double": 20016,
      "many": 39327
    },
    "c": {
      "start": 16477,
      "mid": 17137,
      "end": 16226,
      "double": 19863,
      "many": 36424
    }
  },
  "max": {
    "t": {
      "start": 23310,
      "mid": 24102,
      "end": 21258,
      "double": 26883,
      "many": 49103
    },
    "c": {
      "start": 19328,
      "mid": 23203,
      "end": 22859,
      "double": 26875,
      "many": 44352
    }
  },
  "median": {
    "t": {
      "start": 17571,
      "mid": 18062,
      "end": 16974,
      "double": 20874,
      "many": 41171.5
    },
    "c": {
      "start": 16893.5,
      "mid": 18213,
      "end": 17016.5,
      "double": 20771,
      "many": 38849
    }
  }
}
代码在这里