Как выбрать максимум смешанной строки / Int столбца?

Я сделал наивный тест на node.js v6.0.0 и получил почти такую ​​же производительность. Поскольку тест настолько наивен, не верьте слишком большим числам. Но, похоже, компилятор JIT генерирует очень оптимизированный код в наши дни. Это позволяет мне выбирать предпочтительные шаблоны для конкатенации для моих приложений-узлов.

Для справки это код, который я использовал:

'use strict'

function strConcat(i) {
    return 'abc' + i + 'def'
}

function strTemplate(i) {
    return `abc${i}def`
}

function run(strategy) {
    let before = new Date().getTime()
    let len = 0
    for ( let i = 0; i < 10000000; i+=1 ) {
        len += strategy(i).length
    }
    console.log(len + ' - ' + ((new Date().getTime()) - before) + 'ms')
}

console.log('strConcat')
run(strConcat)

console.log('strTemplate')
run(strTemplate)

И выход был:

strConcat
128888890 - 1904ms
strTemplate
128888890 - 1979ms

Я использовал len, чтобы убедиться, что оптимизатор не оптимизирует весь цикл. Во всяком случае, это еще очень простой тест. Может быть, кто-то может сделать более сложный.

13
задан CairoCoder 11 May 2013 в 23:03
поделиться