LINUX.ORG.RU

Экспериментальные нововведения в реализации JavaScript в Chrome

 , ,


0

3

В сборку браузера Google Chrome для разработчиков (dev channel) была добавлена реализация некоторых экспериментальных возможностей интерпретатора JavaScript, взятых из грядущей спецификации Harmony. Самое интересное:

  • Добавлена возможность использовать лексическую область видимости (lexical scoping). Для этого нужно использовать объявление переменной «let» или «const» вместо «var».
  • Коллекции - более адекватная реализация отображений (maps) и множеств. Правда, итерация по коллекциям пока не поддерживается.
  • Слабые отображения (weak maps) - отображения, в которых сборщик мусора удаляет элементы, ключ которых более недоступен. Это позволит разработчикам меньше волноваться об утечках памяти при использовании больших долгоживущих таблиц.
  • Прокси - виртуальные объекты, которые эмулируют работу реальных объектов и функций, и которые могут использоваться для построения интересных интерфейсов и абстракций.

Разработчики обещают двигаться дальше.

Для того, чтобы включить экспериментальные возможности, необходимо скачать последнюю сборку из dev channel и включить опцию «Experimental JavaScript features» в chrome://flags.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: provaton (всего исправлений: 3)

Ответ на: комментарий от belous_k_a

Да оно и с отключенным отъедает — будь здоров!
Но это же одно из вечных противостояний — потребление_памяти VS потребление_процессора.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Да оно и с отключенным отъедает — будь здоров!

Милейший, дело в том что не отъедает.

потребление_памяти VS потребление_процессора.

Выделение памяти приводит к побочным эффектам субъективно воспринимаемым пользователем как «тормоза», т.е. с точки зрения потребителя не VS, а весьма AND.

belous_k_a
()
Ответ на: комментарий от belous_k_a

Выделение памяти приводит к побочным эффектам субъективно воспринимаемым пользователем как «тормоза»

Ну вот именно! А так какраз один раз выделил переменную i и она живёт, ненадо её снова выделять в другом блоке.

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

Милейший, в другом блоке она уже ненужна, а если там ненароком оказалось замыкание, то бедная переменная будет тосковать и мучится до скончания текущей сессии, что приводит к 1.5 GiB и тормозам.

belous_k_a
()
Ответ на: комментарий от belous_k_a

бедная переменная будет тосковать и мучится до скончания текущей сессии, что приводит к 1.5 GiB и тормозам.

Думаю там таки есть уборщица мусора.

Bad_ptr ★★★★★
()
Ответ на: > Хром не нужен от romaxa

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

anonymous
()

+10 к coffeescript

anonymous
()
Ответ на: комментарий от anthill

Милейший, тут выше по треду спрашивали почему, браузер со скриптами потребляет 1.5 GiB памяти, вот вы демонстрируете собой канонический пример индусокодной причины сего факта.

belous_k_a
()

Я не хочу качать ваш гуглозонд. Где можно посмотреть не примеры, а скриншоты?

CYB3R ★★★★★
()
Ответ на: комментарий от Bad_ptr

Милейший, в динамически типизированных языках, работа сборщика мусора сильно осложнена. Тем более такими наркоманскими вещами как в js, ограничение области видимости - как раз таки поможет сборщику мусора.

belous_k_a
()

Что называется, работа на «ОТЛ.»!

Jayrome ★★★★★
()
Ответ на: комментарий от ipwww

ага хромиум стал тормозить как огнелис

Огнелис же самый быстрый. Обнови версию.

Fanta
()

get: indexOfIdentical(keys, key);

Время доступа O(N) ?
С такой реализации хеша можно только поржать.


var i = 0; i < keys.length; i++

Они серьезно на каждой итерации вызывают «keys.length» ? O_O


Что-то совсем какой-то не торт.

d9d9 ★★★★
()

Убунтоиды, подскажите, чего ppa c хромиумом больше не обновляется? Там сейчас версия 18.0.996, тогда как уже давно 19.* есть.

seonix
()
Ответ на: комментарий от ipwww

хромиум стал тормозить как огнелис

+1, даже сильнее и памяти жрет просто ужасно много... Хромиум мне конечно нравится, но пришлось вернуться на ff (с перезагрузками, чтобы память отдавал). И по теме, когда я последний раз пробовал эту фишку ради любопытства, так еле браузер запустил...

bohm ★★★★★
()
Ответ на: комментарий от seonix

Скриптом устанавливай с офф.сайта. РРА еще с прошлого года испоганился. Есть сборки continuous и snapshots...

bohm ★★★★★
()

Про тред Смешной и гиперкометентный тред :) Настроением обеспечен

Про новость

Коллекции - более адекватная реализация отображений (maps) и множеств.

Адекватная чему?

Про js

лексическую область видимости

Как я мало знаю js :) ужос.

malbolge ★★
()
Ответ на: комментарий от malbolge

> Как я мало знаю js :) ужос.

Видно, реально мало:

>>> var i = 5;
undefined
>>> function foo() { return i; }
undefined
>>> foo()
5
>>> i = 10
10
>>> foo()
10

Это, по-твоему, lexical scoping?

provaton ★★★★★
() автор топика
Ответ на: комментарий от belous_k_a

Ну какие 1.5? На 50 вкладках максимум 1. Десятый фаерфокс, 7 аддонов, кастомная тема.

loz ★★★★★
()
Ответ на: комментарий от geekless

Скриншоты, как это всё отрисовывается.

CYB3R ★★★★★
()
Ответ на: комментарий от bobrik

> слышал, что замыкается контекст при определении функции

Ну вот пойди в гугл и разберись нормально, прежде чем других обвинять в «гиперкометентности».

provaton ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Буква «ы» выделена прописной, чтобы автору было легче увидеть, где нужно исправить. С русским все хорошо, спасибо за заботу.

Silent ★★★★★
()
Ответ на: комментарий от quantum-troll

С мышлением еще более инопланетным, чем у разработчиков вима и емакса :)

buddhist ★★★★★
()
Ответ на: комментарий от r_asian

v8 живет не только в хроме, в nodejs иметь лишние вкусности не вредно

bobrik
()
Ответ на: комментарий от belous_k_a

почему, браузер со скриптами потребляет 1.5 GiB памяти

И почему?

вот вы демонстрируете собой канонический пример индусокодной причины сего факта.

Поясни свою позицию, желательно с примерами.

anthill
()
Ответ на: комментарий от annulen

LuaJIT в стопицот раз, а Lua только на порядки

Быстрее чего, кстати? V8, TraceMonkey, JaegerMonkey, чотамуоперы? Бенчмарки где?

tailgunner ★★★★★
()

Интересно, очень интересно. Лексическая область видимости и прокси - очень приятные нововведения.

lucentcode ★★★★★
()
Ответ на: комментарий от belous_k_a

а ведь увеличение области видимости, суть не удаление из стека отживших переменных

Вам, голубчик, постичь спряжение онаго важнаго глагола надобно непременно и основательно. Отделять же запятой подлежащее от сказуемаго совершенно не можно.

anonymous
()
Ответ на: комментарий от anonymous

Не изволит ли многоуважаемый анонимус сим знаньем поделиться? Ибо в школах ныне сию науку не преподают и разуметь мудрость оную вашему покорному слуге негде.

belous_k_a
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.