
Artyom
13.07.2018
16:00:33
Я просто привел пример кода. Который, кстати, использует все тот же continue (можно было бы через while, но for, иногда, быстрее, по мои наблюдениям)

Konstantin
13.07.2018
16:15:17

Artyom
13.07.2018
16:16:02
Оптимизация происходит на ~2-100 вызов

Google

Artyom
13.07.2018
16:17:05
А вообще тестирование производительности в v8 дело очень не простое:
https://www.youtube.com/watch?v=HPFARivHJRY

Konstantin
13.07.2018
16:17:22
Деопт должен в v8 происходить сразу, как его что-то не устраивает.

Artyom
13.07.2018
16:17:56
Деопт должен происходить после "опт"

Konstantin
13.07.2018
16:18:14
Оптимизация отработала
Писал же

Artyom
13.07.2018
16:18:52
Как ты это все замерил вообще?
Я не говорил что continue не будет никогда оптимизирован. Но то что не всегда удастся его оптимизировать - старый факт.
Еще раз, посмотрите доклад - тесты перформанса дело не благодарное. Они могут крайне отличаться с каждой новой минорной версией движка

Konstantin
13.07.2018
16:21:43
--trace_opt --trace_deopt
Функция с массивом и индексом для брейка (внутри собирает сумму элементов). Массив на 1к элементов. И с 10 вызовов каждого варианта
Я не тестировал производительность. Я проверял факт деоптимизации на досрочное прекращение итерации
Большая часть старых фактов стала неактуальной с выходом турбофана в случае хрома. Пповерил на ноде 4.0.0 деопта нет.
Откуда хоть вообще такая инфа была?

Artyom
13.07.2018
16:29:39
Конкретно откуда не вспомню :)
Только что нагуглил
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#6-infinite-loops-with-deep-logic-exit-conditions-or-unclear-exit-conditions

Google

Konstantin
13.07.2018
16:43:41
Ну такое. Там про бесконечный цикл со сложным условием для выхода. Про сам брейк фактически не сказано. Т.е. кмк дело там вообще не в "неполной итерации" как таковой, не надо людей раньше времени пугать.

Artyom
13.07.2018
17:47:19
#пятничная_задачка
Почему итерации по "keys1" всегда медленнее чем итерации по "keys2", если массивы должны быть идентичны по структуре и элементам?
https://jsperf.com/34g346gh454g34f#comment-form
Ответ в комментарии

Roman
13.07.2018
18:07:47

Artyom
13.07.2018
18:08:18

Roman
13.07.2018
18:09:01
?
огромную статью читать, мог бы выжимку в комменте оставить

Artyom
13.07.2018
18:09:20
Там не много


Vladimir
13.07.2018
18:11:49
вот сейчас будет ужасный пример, но без него не знаю как сформулировать вопрос:
в Java
Сильные, они же обычные, нужны для указания на объекты, которые должны обязательно оставаться в памяти всё то время, что эти ссылки на него существуют. Если не складывается, получите OutOfMemoryError.
Мягкие ссылки полезны для кэшей, чувствительных к доступному объёму оперативной памяти. Объекты по ним могут зачиститься, но только в случае необходимости. Например, если нужно насоздавать ещё объектов с сильными ссылками, а уже негде, лучше освободить кэш и замедлить работу, чем уронить процесс напрочь.
Слабые ссылки полезны для сопоставления объектов чему-нибудь без удерживания их от зачистки когда они больше не нужны (а-ля Map<Ключ, WeakRef<Значение>>). На возможность зачистки они не влияют вообще никак, слабые ссылки будут очищены при очередном запуске сборщика.
Фантомные ссылки возникают, когда объект уже признан мусором, финализирован и находится в процессе зачистки, о чём можно узнать с помощью класса Cleaner и выполнить в это время какие-то собственные действия.
Плюс общее правило: политика зачистки для некоего объекта и очистки ссылок на него определяется самыми жёсткими из всех ссылок, что на него указывают.
А в JS что со ссылками? Киньте в меня запросом в гугл ибо ничего найти не смог


Artyom
13.07.2018
18:12:12
Почему-то только посмотрев примеры патерн-матчинга на reasonML понял всю неизгладимую силу вопроса. Это же как fsm на дрожжах...
Коллеги, есть что еще почитать про патерн-матчинг?
вот сейчас будет ужасный пример, но без него не знаю как сформулировать вопрос:
в Java
Сильные, они же обычные, нужны для указания на объекты, которые должны обязательно оставаться в памяти всё то время, что эти ссылки на него существуют. Если не складывается, получите OutOfMemoryError.
Мягкие ссылки полезны для кэшей, чувствительных к доступному объёму оперативной памяти. Объекты по ним могут зачиститься, но только в случае необходимости. Например, если нужно насоздавать ещё объектов с сильными ссылками, а уже негде, лучше освободить кэш и замедлить работу, чем уронить процесс напрочь.
Слабые ссылки полезны для сопоставления объектов чему-нибудь без удерживания их от зачистки когда они больше не нужны (а-ля Map<Ключ, WeakRef<Значение>>). На возможность зачистки они не влияют вообще никак, слабые ссылки будут очищены при очередном запуске сборщика.
Фантомные ссылки возникают, когда объект уже признан мусором, финализирован и находится в процессе зачистки, о чём можно узнать с помощью класса Cleaner и выполнить в это время какие-то собственные действия.
Плюс общее правило: политика зачистки для некоего объекта и очистки ссылок на него определяется самыми жёсткими из всех ссылок, что на него указывают.
А в JS что со ссылками? Киньте в меня запросом в гугл ибо ничего найти не смог
Условно говоря в JS по умолчанию все ссылки сильные, и только в WeakMap слабые.
Но это условно, возможно, для этого есть более правильная терминалогия, я не знаю


Vladimir
13.07.2018
18:14:43
мне просто задали этот вопрос на собеседовании час назад и я понял что вообще ничего об этих типах ссылок в JS даже краем уха не слышал
попробовал сейчас загуглить, результат стремиться к минус бесконечности)
Если есть разбираюшиеся в этом люди тут(а я уверен их тут полно) Дайти на любом языке инфу по этому вопросу

FUTURICO
13.07.2018
18:17:48

Vladimir
13.07.2018
18:17:53
угу
мне намекнули что их 3

Artyom
13.07.2018
18:18:07

FUTURICO
13.07.2018
18:19:17
мне намекнули что их 3
как называются они? soft links? что за объекты, что постоянно в памяти? любой const ведь постоянно в памяти
в цитате про джаву

Google

Vladimir
13.07.2018
18:19:51
Вопрос звучал так, какие есть типы ссылок и чем они отличаются
сказать что я завис, значит ничего не сказать)
мб я даже знаю про это, но сама формулировка меня чего то уничтожила просто
типо ссылки на обьект как я понял из контекста

Artyom
13.07.2018
18:21:23

Vladimir
13.07.2018
18:23:51
Спасибо еще раз) Видимо мне надо проспаться) В 4 часа боевые сервера с докерами грохнулись, включая эластик сервера.. До 11 поднимал их, потом в офис потом на собеседование)
В общем сижу читаю и не понимаю о чем читаю) Утром пройдусь по всему материалу) Еще раз благодарочка)

Thiefgard
13.07.2018
18:40:31
всем привет. Подскажите нубу литературку по ес6. Прочитал две книженции и вроде как в основах разобрался, а как дальше к реакту двигаться...

Vladimir
13.07.2018
18:48:18
Exploring es6
Не знаю перевели ли
Когда я читал только ингл. Версия была

Artem
13.07.2018
18:49:02
Как узнать апи сервера у какого-нибудь сайта/сервиса написанного на ангуляре? Хочется получить данные с сайта но не хочется его парсить)

Vladimir
13.07.2018
18:49:06
Если с англ. Все ок, обязательна к прочтению

Artem
13.07.2018
18:49:20
Может есть какая тулза или лайфхак

Vladimir
13.07.2018
18:49:24
Почти как и титан Секреты js ninja

Evgeny
13.07.2018
18:55:30
народ. хелп лиз. IE11 alarm
что этой собаке нехватает?
с какого ражна он начал предлогать сохранять json?
откатить код проекта и посмотреть когда баг всплыл - не катит. Пробовал

Google

Evgeny
13.07.2018
19:44:41
короче народ... это полный аут
лишняя запятая затаилась

Dmitry
13.07.2018
19:46:29

Admin
ERROR: S client not available

Artem
13.07.2018
19:49:59

Dmitry
13.07.2018
19:50:36

Artem
13.07.2018
19:50:53
Вебсокеты были

Vladimir
13.07.2018
23:12:03
А тут есть люди с золотым сертификатиком mail срушки?
Я чего то разок попробовал, бронзу только достал(

Samat
14.07.2018
08:40:08
ребят, есть vue'шники? сорри, я уже от отчаяния во все паблики спамлю проблемку, решить не могу со вчерашнего вечера

iwannafly
14.07.2018
08:42:25
Так ты спамь в нужном месте
@vuejs_ru

Dallowin
14.07.2018
08:42:42
так он спамил там

Samat
14.07.2018
08:42:53
писал вчера и сегодня(

iwannafly
14.07.2018
08:43:10
Суббота, дай очнуться людям

Samat
14.07.2018
08:43:57
дедлайн скоро, начал совсем трястись хд

FUTURICO
14.07.2018
08:45:49
// оффтоп
где нейросеть такие авы делает?) или это настоящая

Валентин
14.07.2018
08:48:32

FUTURICO
14.07.2018
08:50:37

Akmatali
14.07.2018
09:13:52

Google

Akmatali
14.07.2018
09:14:34
Каким образом передается контекст в этом случае?

Phoenix»
14.07.2018
09:17:25
У таймаута свой контекст => там контекст не кофемашины
Селф работает как ссылка на контекст кофемашины

Валентин
14.07.2018
09:21:25

Akmatali
14.07.2018
09:21:41
Какие есть предположения и что именно смущает?
В этом случае созданном объекте coffeeMachine есть метод run().
Когда мы запускаем этот метод как coffeeMachine.run() он получает в качестве контекста текуший объект coffeeMachine.
А дальше этот метод run запускает локальную функцию getBoilTime()
а он использует внутри себя свойству объекта waterAmount.
А откуда берёт getBoilTime контекст, ведь self стоит выше.

Валентин
14.07.2018
09:22:07
Замыкание?

Akmatali
14.07.2018
09:23:54
Замыкание?
ну да из замыкания,
в self какой объект записали ?

Валентин
14.07.2018
09:24:17
Зыс

Akmatali
14.07.2018
09:24:43
Зыс
че та я путаю всё блин

Валентин
14.07.2018
09:25:08
Это такая фича, закешировать зыс текущего объекта для методов.