powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [node.js] async/await perfomance
7 сообщений из 7, страница 1 из 1
[node.js] async/await perfomance
    #39785565
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия v11.10.0
Неожиданные результаты от сравнения производительности выполнения обычной функции и async/await

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
'use strict';

function sss() {
	var t = 0;
	var t = 555 + t;
	console.log(t);
}

async function sss2() {
	var t = 0;
	var t = 555 + t;
	console.log(t);
}

async function main() {
	var s = process.hrtime();
	for(let index = 0; index < 5000; index++) {
		sss();
	}
	var e = process.hrtime(s);

	var s2 = process.hrtime();
	for(let index = 0; index < 5000; index++) {
		await sss2();
	}
	var e2 = process.hrtime(s2);
	console.log(((e[0] * 1e3) + e[1]) * 1e-6);
	console.log(((e2[0] * 1e3) + e2[1]) * 1e-6);
}

main();



Результаты след:

...
555
555
538.488101
497.19900099999995

Не совсем понятно каким образом через await функция выполняется быстрее. Ожидал совсем обратного.
Почему через async/await работает чуть быстрее?
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39790726
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spider13,

Потому что этот код некорректен. Я не знаю в каком браузере у вас это исполняется, но нормальный движок такой код исполнять не должен вовсе, потому что вы применяете await к функции sss2(), которая не возвращает промис. Сафари, например, на этиот код говорит следующее
Unhandled Promise Rejection: ReferenceError: Can't find variable: process
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39791309
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядька,

Поддержу
должно возвращать промис ведь await это синтаксический сахар

Код: javascript
1.
2.
3.
4.
5.
6.
7.
await asynhoperation();
nextcode

Это эквивалент 
Promise.then(()=>{nextcode});

Только с await более изящно выглядит в коде.
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39792376
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысый дядькаspider13,

Потому что этот код некорректен. Я не знаю в каком браузере у вас это исполняется, но нормальный движок такой код исполнять не должен вовсе, потому что вы применяете await к функции sss2(), которая не возвращает промис. Сафари, например, на этиот код говорит следующее
Unhandled Promise Rejection: ReferenceError: Can't find variable: process

В старых стандартах JS - да, но в новых выполняется даже:
Код: javascript
1.
var x = await 5;



Приведенный код корректно выполняется в node.js версии 11
И в последних версия chrome
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39792381
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпотому что вы применяете await к функции sss2(), которая не возвращает промис

Нифига, это валидный код. В ТайпСкрипте все отлично выполняется без ошибок. А они жестко придерживаются стандартов и проверяют.
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39792382
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже это показалось первое время дико, но каким-то боком гениальные архитекторы жаваскрипта решили что - а пусть будет :)
...
Рейтинг: 0 / 0
[node.js] async/await perfomance
    #39792419
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateМне тоже это показалось первое время дико, но каким-то боком гениальные архитекторы жаваскрипта решили что - а пусть будет :)

На самом деле решение довольно хорошее и некоторые фреймворки это уже подхватили, лично я использую hapi, и там это решение применяется для всех колбеков.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [node.js] async/await perfomance
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]