169 похожих чатов

Всем привет, есть компонент который рендарится на клиенте при нажатии

на определенную папку. компонент представляет из себя таблицу из 3 колонок и примерно от 1000 до 2500 рядов. ячейки представляют из себя textarea с данными которые можно редактировать. И проблема в том что при нажатии таблица появляется с довольно сильной задержкой, секунды 3. В чем может быть проблема ? ререндера там нету. А для виртуализации или инфинити скрола вроде не так много данных

12 ответов

13 просмотров

2,5к записей это мало данных?

Max Shabalin
2,5к записей это мало данных?

может у него мак про на m2

Девтулзы в помощь там все показано по времени какая операция занимает больше всего времени

1000 это очень мало. 0.01с навскидку. Где-то ререндеринг или архитектурно что-то не то. Есть код?

M S
1000 это очень мало. 0.01с навскидку. Где-то ререн...

Откуда такая инфа? На большинстве таблиц 200+ строк - это уже виртуализация нужна как минимум, чтобы интерфейс плавно работал для юзера

Alexandr
Откуда такая инфа? На большинстве таблиц 200+ стро...

Браузер на средней машине клонирует элементы со скоростью около 10 млн элементов в секунду.

M S
Браузер на средней машине клонирует элементы со ск...

Сколько таблиц без виртуализации и без пагинации на 1000+ строк у тебя написано на реакте? )

Alexandr
Сколько таблиц без виртуализации и без пагинации н...

Я не использую реакт для таблиц 1000+, изЗа его пенальти. Солид жиэс, свелт или ванила позволяют до 5000 строк со всей скоростью. Но у человека речь шла даже не о плавности. У него 3 сек тормоза на таблицах в 1-2 к рядов. Нормальное пенальти реакта 2-4 раза от нативной реализации. Все что свыше - что то не то с архитектурой.

M S
Я не использую реакт для таблиц 1000+, изЗа его пе...

Не понимаю смысла таких рассуждений, когда они ломаются бональным примером в сандбоксе https://codesandbox.io/s/basic-usage-antd-5-9-4-forked-phcn5g?file=/demo.tsx Хочешь сделать анимашку в одном рендере с рендером таблицы на 1000 строк и получаешь дерганую фигню, даже без замеров в профайлере. Можно один раз навесить виртуализацию и забыть про проблемы со скоростью рендера, в подавляющем большинстве кейсов этого за глаза хватает и нет смысла упарываться в какие-то оптимизации с мемоизациями.

Alexandr
Не понимаю смысла таких рассуждений, когда они лом...

Самое смешное, что там в таблице можно просто включить пагинацию ))

Alexandr
Не понимаю смысла таких рассуждений, когда они лом...

Вот как раз великолепный пример того, о чем я и говорил - если изменения стейта, не связанное с таблицей, вызывает полный ее ререндеринг - значит что-то не то с архитектурой. Накладываясь на неторопливость antd (при всей моей любви к нему, скоростью он не блещет) это и приводит к жутким лагам. Рендеринг с antd на стареньком ноуте - 1600 мс, чисто реактом - 400 мс, ванилой (без css) - 200 мс. Причем, в случаес ванилой, 90% рендеринга забирает рендеринг браузера а не код. Виртуализация для длинных списков это действительно хорошая практика. Но начинать нужно с тщательного продумывания архитектуры. Это вообще базовая вещь и краеугольный камень любой оптимизации.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта