Alexsandr
В дебаг режиме
Александр
На телефон поставь
По крайней мере я открыл уже приложение. Точнее установил.
Но изменение на него не распространяются?
Alexsandr
Alexsandr
Там должно появиться reload
Александр
Потряси телефон)
рыли появилось, спасибо. и что надо трясти телефон ? ))))))))))))) есть более кошерный способ?)
Alexsandr
Александр
я включил, на телефоне не пашет)
Alexsandr
Ты просто видимо на state или redux
Alexsandr
Изменения вносишь
Alexsandr
По этому он и ломает
Alexsandr
Попробуй live reload
Александр
Alexsandr
Только hot не забудь выключить
Александр
Александр
Dem
Всем привет!
Возникла проблема
Почему то с разной скоростью срабатывает скрипт, который фильтрует масив
В дебаг версии все норм, а в релизной в десятки раз медленей
Может было такое
Anton
console.log выпилил?
Dem
Dem
Dem
Совсем уж запутался
Как на релизе он медленней может быть
Еще и многократно
Eugene
Красота
Cenator 🐈
Dem
Gena
Gena
Может быть медленней на реальном девайсе, чем в симуляторе... но это не от типа бандлинга зависит...
Я просто лучше спрошу: как измеряли производительность? Как поняли, что в релизе медленней, чем в дебаг?
Gena
А вообще вот такое всегда будет медленно, потому что javascript не функциональный язык программирования, он не заточен ваши бесконечные копирования оптимизировать.
Dem
Gena
Gena
Т.е. конечно можно предположить баг в UglifyJS, которую где-то глючит от циклов в циклах по одним и тем же массивам...
Gena
Но это довольно маловероятно
Dem
Консоли по функции которая отрабатывала
Вначале и вконце каждой
И вот именно на этой была задержка
Eugene
🤔а это не завист от какого-нибудь запроса мб?
Gena
Гм... а большой размер массива programs? Там, как я уже писал, много копирований... может быть GC включается...
Dem
Dem
GC??
Gena
Странно, что в debug режиме нормально работает.
Dem
Возможно, код изначально пробовал на меньшем масиве
Gena
А debug режим - точно не в remote debugger?
Gena
А...
Gena
Тогда ок
Gena
Короч, чтоб это работало хоть как-то, надо убрать лишние копирования и поиски
Eugene
2к записей и по ним делать map потом еще по вложенным..жесть
Eugene
На клиенте такое делать конечно, хз, имхо
Gena
Ещё раз, js - не ФП-язык и в ближайшем будущем им не станет, хоте некоторые об этом и мечтают )
Dem
Gena
Лучший ваш друг, конструкции типа:
const ret = [];
for (const item of programs) {
ret.push({ ...item })
}
Dem
Gena
В вашем случае это от кол-ва данных зависит, у вас сложность алгоритма O(n) ~ n^2 это очень быстро с ростом n становится очень медленным
Gena
Думается при том кол-ве данных, что на скриншоте у вас и дебаг сборка затупит на долго
Eugene
🤔а откуда эти данные приходят и что вы с ними делаете?
不退転」
Может стоит просто кусками выкачивать столько данных
不退転」
Это да. Но если бэк чуть ли не всю бд сбрасывает на фронт, то не ок
Gena
Но почему то работает нормально.
Ладно, все равно бед практис, лучше попробовать исправить.
Вот это меня смущает... и это принципиальный вопрос. На самом деле единственный, который меня заинтересовал в этом обсуждении ))
Я даже сам не поленюсь сходить и проверить этот сниппет, но это время и его можно сэкономить.
Можно вас попросить ещё раз провести два измерения. Вставьте в начале ф-ции что-то типа cont startTime = Date.now();, а в конце console.log('time: ', Date.now() - startTime):
1 измерение. дебаг сборка (проверьте, что дебаггер отключен, это важно).
2 измерение. продакшн сборка на том-же девайсе/симуляторе с ровно теми же данными, что и для п.1
Если дебаг сборка выполняется всё равно быстрее, это очень нехорошо.
Gena
Просто я могу понять если вы ошиблись и когда мерили дебаг-сборку, скормили в эту ф-цию меньше данных или у вас включен дебаггер и тогда ваш JS вообще в Chrome на хосте выполняется, с JIT, к тому же... Но если при тех же данных и в той же среде debug-сборка оказывается быстрее, чем production, то это важный баг, который надо срочно фиксить.
Dem
Dem
Александр
нейтив поддерживает все либы стандартные? типа reselect, redux, immutable?
Gena
Dem
Gena
Хотел ссылку на документацию дать, но понял, что они так и не добавили (или убрали?) это предупреждение из документации. Поэтому ещё раз напишу для всех.
Упрощенно. Когда вы дебажите js в RN, куски вашего js кода посылаются по сети в дебаггер и выполняются в нем (в V8, а не в JSC), результаты выполнения отсылаются назад в RN и применяются там. Поэтому в процессе дебага могут быть "подставы". Одну из них мы только что пронаблюдали. Другие связаны с разным набором фич и разной семантикой js в v8 и JSC, может быть такое, что ваш код нормально работает в дебаггере, но крешится в JSC и наоборот. Будтьте внимательны )
Gena
Ещё были подставы, связанные с сетевыми соединениями (не знаю как сейчас с этим дела), раньше в сеть получается тоже дебаггер ходил, а не приложение...
Dem
Александр
Taras
привет всем)
подскажите как достичь такой прозрачности в таб навигаторе?
Кирилл
Выглядит как баг
Taras
так должно быть
просто и прогуглить никак не могу и опыта не хватает
Александр
в RN можно поставить src dir?
Кирилл
Alexsandr
Александр
Александр
без мата плз)
есть вариант билд с —watch запустить? ))))
Alexsandr
hot reload
Александр
hot reload
в случае с крешем апликейшна до стсарта, он не пересобирает покуда не перезапустишь. Возможно во мне проблема, хз
Alexsandr
правда он очень часто падает, и лучше не ошибатся
Александр