Sergey Eremeev
Воспроизведи проблему ещё раз и рокажи пикчу процессов + потребление памяти каждого процесса
Вот 4 процесса электрона, без загрузки картинок на холст они занимают в сумме где то 80 мб а после загрузки довольно большого кол-ва картинок уже около 250 мб, предположу что это норма, другое дело что после их удаления память не освобождается, скорее всего кэш не очищается после их удаления, думаю дальше оптимизация зависит от самого кода, я развел панику, но это от незнания как работает сам электрон. Спасибо за помощь!
Vladimir
Нашел еще одно сочетание: если в строке перед или после русской буквы есть пробел, то тоже null. Бред какой-то.
Yuri
Хм, тогда буду разбираться с этим. Благодарю за совет!
Оно того стоит? Как бы, ты делаешь прилку через чатжпт поэтому я не думаю что тебе стоит вбухивать время в оптимизацию
Sergey Eremeev
Оно того стоит? Как бы, ты делаешь прилку через чатжпт поэтому я не думаю что тебе стоит вбухивать время в оптимизацию
Сейчас хочу хотя бы сделать выгрузку из памяти при удалении картинок из канвас, они просто не выгружаются и остаются в памяти, а потом посмотрю, буду на остальную оптимизацию тратить время или не стоит, просто нужна приложуха с некоторомы функционалом расширяемым, чтобы не прыгать с программы на программу, так то уже есть программа pureref для сбора рефов, но это ее единственный функционал! а так я не тороплюсь и делаю все потихоньку и буду добавлять и улучшать, понимаю что с ии не сделать годный продукт, но у меня и нет к этому стремления, просто чтобы работало более менее сносно))
Николоз
Всем привет! Только начинаю знакомиться с Электроном так как понадобился в работе. Такой вопрос - У меня два окна, передают между собой какую то инфу через IPC. В dev режиме все окей но при сборке каждый роут оказывается в разном статическом html и связь IPC теряется. Сборка на Next.js + electron Может подскажите как можно сохранить соединение после сборки, хотя бы на нужную главу в документации направить. Всякие chatgpt не помогли к сожалению.
Mufty 💉🩸
https://youtu.be/NceBQ0G9bws?si=aNNAXySGI0yI7qj_
Yuri
Ребята, у кого есть мак на интеле? Что у вас выводит echo $CPUTYPE, echo $MACHTYPE и echo $OSTYPE?
Георгий
Здарова, позже смогу посмотреть
x86_64 x86_64 darwin22.0 Могу проверить еще на более древнем
Георгий
@rarescrap
На более древнем тоже самое, просто darwin21.0
Vladimir
Мне нужна возможность открывать файлы на странице (через <input>) и с помощью аргументов командной строки. Как это правильно сделать, чтобы не дублировать код? Передавать имя файла из renderer в main и там открывать?
Yuri
Мне нужна возможность открывать файлы на странице (через <input>) и с помощью аргументов командной строки. Как это правильно сделать, чтобы не дублировать код? Передавать имя файла из renderer в main и там открывать?
Несколько вариантов: 1) Читать/изменять/удалять в main'е и слать контент кусками на renderer на отображения 2) Читать/записывать/удалять файл на main'е, слать весь файл кусками в renderer и уже там держать весь blob файла в памяти. 3) Если renderer'у нужно лишь чтение файла - открывать сразу там через file:// Лучшее решение определяется набором требований к твоей задаче
Yuri
Щас в тесте у QA
Yuri
Сейчас у меня в производстве самая важная таска предстоящего мажорного релиза - browser api приложения (да, у меня все ещё ничего не прописывается в прелоаде и вся логика чисто на main стороне 💀)
Yuri
Я долго думал как сдизайнить это и лучшее решение - перенести вообще всю прилу в renderer, оставив на main'е лишь методы по взаимодействию с файловой системой и спавнингом процессов
Yuri
Это сделает main часть убер легковесной и предоставит мне возможность быстро имплементить browser api прилы на tauri и любых других платформах, работающих в webview. Итог - даже такую огромную зависимость как electron можно будет заменять без изменения кода приложения 🍆💦💯
Yuri
Обмазал имплементацию IPC настолько агрессивной санитизацией как только мог. Мало того что прила пошлет запрос рендерера нахуй, если он решит попариться за пределами целевой изолированной директории, так ещё и нахуй пошлет, если в жсонке содержатся поля, которые вообще левые. Т.к. моя прила - SaaS продукт, подобные меры очень нужны
Yuri
Это сделает main часть убер легковесной и предоставит мне возможность быстро имплементить browser api прилы на tauri и любых других платформах, работающих в webview. Итог - даже такую огромную зависимость как electron можно будет заменять без изменения кода приложения 🍆💦💯
И любопытная вещь, которую я обнаружил. Если webview провайдится операционной системой, то та работает в пространстве системного webview провайдера, а не в пространстве приложения, которое его использует. Это означает, что task manager'ы не учитывают расходы оперативы, процессорного времени и нетворка на логику, которая запущена в webview. Перенос почти всей логики прилы в renderer означает всегда низкие циферки в футпринте вашего приложения, чем можно выебываться)))
Yuri
Мол, "мое приложение вообще мега оптимизировал и не тратит больше 5 мб оперативы. Убедись сам - посмотри в так менеджер." *Картинка тощего Гомера с жиром позади*
🅰️nimeCoder
А то
А если потом сломаетсо?
Yuri
А если потом сломаетсо?
Логика компонентов, полагающаяся на данные о фактической архитектуры оси уже наперед работает с ним как с NodeJS.Architecture | undefined и готово фоллечиться к process.arch с последующей отправкой в аналитику репорта о невозможности получить данные
Yuri
Неубиваемо бля!