Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   ЭКОНОМИМ ПАМЯТЬ, arguments[*] OR arg1, arg2... (https://javascript.ru/forum/events/47410-ehkonomim-pamyat-arguments%5B%2A%5D-arg1-arg2.html)

Brook 22.05.2014 19:14

ЭКОНОМИМ ПАМЯТЬ, arguments[*] OR arg1, arg2...
 
Доброго времени суток встал такой вопрос о экономии память js-приложением, в качестве примера будем рассмаривать библиотеку где есть 1000 функций от 2-х до 10-ти аргументов в каждой. Встает вопрос какой вариант будет работать быстрее:
1.
function(a,b,c....i,j) {
...
...
}

2.
function() { 
var a = arguments[0], b= arguments[1], ..... , j = arguments[9]; 
...
}


Заранее спасибо за ответ:thanks:

dmitriymar 22.05.2014 19:30

Цитата:

Сообщение от Brook
Встает вопрос какой вариант будет работать быстрее:

возьми сам и замерь, в чём вопрос то?

melky 22.05.2014 20:03

очевидно, первый

Brook 23.05.2014 10:39

Цитата:

Сообщение от dmitriymar (Сообщение 312930)
возьми сам и замерь, в чём вопрос то?


"""спасибо очень помогли без вас не справился бы""" :-E

** ну это лучше чем "прогугли" так что - спасибо

Brook 23.05.2014 10:41

жалко что никто не знает \ никто не смог по человечески (аргументированно) объяснить (((
ладно, ....
Всем СПАСИБО за участие

devote 23.05.2014 10:46

Цитата:

Сообщение от Brook
что никто не знает

с чего такое утверждение? Тебе же написали:
Цитата:

Сообщение от melky
очевидно, первый

или тебя этот ответ не устроил?

Sweet 23.05.2014 11:40

Разве по памяти это не одно и то же???

melky 23.05.2014 11:59

Цитата:

Сообщение от Sweet (Сообщение 313041)
Разве по памяти это не одно и то же???

фишка в том, что компилятор будет стопориться на arguments, которое сносит всю статику низкоуровневого кода к чертям.

Crankshaft в V8 (Chrome\Opera\Yandex Browser) не желает разбираться в том, что было просмотрено из arguments и просто ставит на функцию печать "неоптимизируемо"

то бишь в V8 эти функции будут разными (если смотреть глазами компилера)

// Ещё может быть оптимизирована 
function a (a) { /* blah */ }

// Вообще не будет оптимизироваться
function a (a) {
    arguments[0]; // boo, you suck!
}


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

Octane 23.05.2014 12:06

https://github.com/petkaantonov/blue...zation-killers

Sweet 23.05.2014 12:44

Цитата:

Сообщение от melky
в V8 (Chrome\Opera\Yandex Browser)

Фиг знает. Писать код под конкретную реализацию интерпретатора.. В этом есть что-то неправильное:) Конечно, если под ноду пишешь, лучше учесть все эти моменты. Но тема с хернёй:) Получается это уже другой ЯП. Что-то типа того:


Часовой пояс GMT +3, время: 04:38.