Size: a a a

2020 September 15

AS

Alexey Schebelev in Svelte [svelt]
в свелте сравнение по битовой маске идет для инвалидных объектов, т.е. если ничего не менялось ifы пройдут быстрее чем, то же количество сравнений значений полей. Однако мы тут говорим о порядке микросекунд что для первого случая, что для второго.
источник

AS

Alexey Schebelev in Svelte [svelt]
Просто чтобы осознать - чтобы приложение оставалось в заветных 60кадрах/с - между кадрами у него 16мс времени. Если 100 биндингов в Малине проверяется за 7мкс, то это только одна двухтысячная часть этого времени. У Свелта вероятно ещё меньше. Но такие доли даже измерить трудно. Все остальное время сжирает в основном рендер.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Alexey Schebelev
Просто чтобы осознать - чтобы приложение оставалось в заветных 60кадрах/с - между кадрами у него 16мс времени. Если 100 биндингов в Малине проверяется за 7мкс, то это только одна двухтысячная часть этого времени. У Свелта вероятно ещё меньше. Но такие доли даже измерить трудно. Все остальное время сжирает в основном рендер.
Жесть
А я на перф тесте смотрел как быстрее фор лупы делать 🙈
источник

ON

Oleg N in Svelte [svelt]
Alexey Schebelev
@lega00  Т.е. упрщенно это примерно так?
1. Свелт на каждом тике для каждого вхождения поля объекта в шаблоне, проверяет в if что объект инвалидирован(было присваивание чего либо в объекте) и что значение поля не равно предыдущему.
2. Малина на каждом тике просто проверяет, что значение поля объекта, которое встречается в шаблоне, не равно предыдущему значению?
1. свелт сначала дергает $invalidate после каждого = (если переменная в шаблоне/отслеживается), где проверяется изменилось ли значение, а по шедулеру уже то что ты написал, в итоге переменная проверяется дважды (но это мелочи)
2. примерно так
источник

AS

Alexey Schebelev in Svelte [svelt]
я думал там компилер заменяет все a=1 на грубо говоря $invalidate('a',()=>{a=1}). Т.е. инвалидейт дергается только когда происходит присваивание?
источник

AS

Alexey Schebelev in Svelte [svelt]
т.е. можно не учитывать в общем времени, т.к. это единичные случаи, которые не делаются каждый тик
источник

AS

Alexey Schebelev in Svelte [svelt]
обычно
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexey Schebelev
я думал там компилер заменяет все a=1 на грубо говоря $invalidate('a',()=>{a=1}). Т.е. инвалидейт дергается только когда происходит присваивание?
Дык да. Внутри инвалидейт он просто строго стравливает изменилось ли значение, чтобы инвалидировать только реально изменённые:

a = a; // значение не будет поставлено на рендер
источник

ON

Oleg N in Svelte [svelt]
Alexey Schebelev
т.е. можно не учитывать в общем времени, т.к. это единичные случаи, которые не делаются каждый тик
там все по мелочи кроме DOM, только не каждый тик, а по шедуллеру и в малине и в свелт
источник

AS

Alexey Schebelev in Svelte [svelt]
тик всмысле свелтовский tick()
источник

AS

Alexey Schebelev in Svelte [svelt]
тик шедулера видимо
источник

AS

Alexey Schebelev in Svelte [svelt]
=)
источник

ON

Oleg N in Svelte [svelt]
Alexey Schebelev
я думал там компилер заменяет все a=1 на грубо говоря $invalidate('a',()=>{a=1}). Т.е. инвалидейт дергается только когда происходит присваивание?
зато если изменения в цикле 1000 итераций, то $invalidate вызовется 1000 раз, а в малине 1 раз
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexey Schebelev
тик всмысле свелтовский tick()
Там просто промис внутри если правильно помню. По идее можно вместо tick делать await Promise.resolve();
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Oleg N
зато если изменения в цикле 1000 итераций, то $invalidate вызовется 1000 раз, а в малине 1 раз
Да это гут, не сильно принципиально но гут
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Pavel 🦇 Malyshev
Там просто промис внутри если правильно помню. По идее можно вместо tick делать await Promise.resolve();
Блин, как Остер прям, короче, можно, но не нужно. Нельзя исключать что в будущем поведение tick может измениться и эти вещи перестанут быть эквивалентными.
источник

К

Константин in Svelte [svelt]
А что за малина и в каком она состоянии?
источник

ON

Oleg N in Svelte [svelt]
Константин
А что за малина и в каком она состоянии?
Malina.js
источник

IG

Ilya Gladko in Svelte [svelt]
Например, не умеет открываться на айпаде
источник

NK

ID:0 in Svelte [svelt]
#article

И ещё раз ) сайт кстати на sapper & tailwind

https://markushatvan.com/blog/10-reasons-why-i-recommend-svelte-to-every-new-web-developer
источник