Мне не нужно возвращаемое значение из связанной функции, какой метод быстрее при запуске системы, используя возврат или нет? - PullRequest
0 голосов
/ 06 декабря 2018

Мне не нужно возвращаемое значение из связанной функции, какой метод работает быстрее при запуске системы: завершить функцию с возвратом без значения или не использовать return где-нибудь?

Использование возврата без каких-либо значений:

function saveData(save){
   save(newData);

   return; //return without any value
}


Не использовать возврат в любом месте:

function saveData(save){
   save(newData);

   //There is no return anywhere
}


, хотя нет особой разницы в скорости, эта информация будет полезна при широкомасштабном использовании.

1 Ответ

0 голосов
/ 06 декабря 2018

Краткий ответ: Быстрее явный возврат для коротких циклов (1000 итераций).Но если ваш цикл повторяется 100000 раз, то быстрее не возвращаться из функций.

Я запустил стендовые тесты Javascript, используя JSBEN.CH

var sum = 0;
for(var i=0; i<1000; i++) {
    sum += is_even(i) ? 1: 0;
}
console.log(sum);

.здесь определена функция is_even():

без возврата

function is_even(n) {
    if(n%2==0) { return true; }   
             // no return if n is odd.
             // default return is undefined
}

с возвратом;

function is_even(n) {
    if(n%2==0) { return true; }   
       return;
}

Тест сообщил (с возвратом), что блок будет быстрее.

Comparison result

Затем я увеличил количество итераций в цикле for и получил обратный результат.

var sum = 0;
for(var i=0; i<100000; i++) {
    sum += is_even(i) ? 1: 0;
}
console.log(sum);

В этомслучай, инструмент для ремонта сообщил, что функция без возврата;быстрее.

...