Обновить
16

Пользователь

3
Подписчики
Отправить сообщение
Почему нет?

function exampleFunction() {
    let s = 0;
    for (let i = 0; i < 1000; i++) {
        s += i;
    }
    console.log(s);
}

Function is optimized by TurboFan: exampleFunction


В текущей версии браузер не оптимизирует, через пару обновлений будет

во вторых то, что код не вызывает деоптимизации и компилируется, еще не значит, что он будет работать быстро, так что для написания производительного кода все еще нужно будет держать в голове много информации о работе движка

Может да, а может нет. Держать все нет смысла, так как оптимизатор развивается быстрее, чем мы пишем код
Правильнее конечно будет пример сразу с try-catch
async function exampleFunction() {
    try {
        let result = await asyncTest()
        await delayAsync(500)
        console.log(`result after 500ms: ${result}`)
    }
    catch (err) {
        console.error(err)
    }
}

Function is optimized by TurboFan: exampleFunction
Эти тесты на LTS node ожидаемо ничем не отличаются от прошлогодних выводов, речь про chrome 55 и node v8.0.0

Если заглянуть еще дальше, то в Chrome 57 canary уже оптимизируются даже async-await функции (юху!)

async function delayAsync(delay) {
	return new Promise(resolve => {
		setTimeout(() => resolve(), delay)
	})
}

async function asyncTest() {
	return 'habrahabr'
}

async function exampleFunction() {
	let result = await asyncTest()
	await delayAsync(500)
	console.log(`after 500ms: ${result}`)
}

Function is optimized by TurboFan: exampleFunction
Function is optimized by TurboFan: asyncTest
Function is optimized by TurboFan: delayAsync
//ждем 500ms, после этого результат
(3) after 500ms: habrahabr
Мне кажется другие браузеры не отстают в этом вопросе, но в контексте убийц оптимизации, клиентский js код не факт что имеет ощутимый вклад в отзывчивость страниц, там ведь в первую очередь проблема с DOM и детекцией видимости объектов и скрытием невидимых.
Тут важнее, чтобы все браузеры внедрили IntersectionObserver, и популярные фреймворки/библиотеки стали поддерживать эту технологию — тогда страдать никому не придется =)

А с v8 всё просто, если оптимизировали там, значит в node код станет быстрее, и писать его будет проще

Информация

В рейтинге
Не участвует
Откуда
Дания
Зарегистрирована
Активность