Size: a a a

2019 May 14

RM

Ruslan Molchanov in Java Developers
Но имплементация, однозначно, через касмотный класслоадер.
источник

АК

Артём Карташов in Java Developers
вот сейчас читаю и сразу с RMI, что регистрация с разных машин невозможна без костылей, уже -
источник

RM

Ruslan Molchanov in Java Developers
Артём Карташов
вот сейчас читаю и сразу с RMI, что регистрация с разных машин невозможна без костылей, уже -
RMI - это лишь вызов удалённых процедур. Вроде RPC.
источник

АК

Артём Карташов in Java Developers
так а в чем разница, если у меня и так на сокетах всё шуршит?
источник

RM

Ruslan Molchanov in Java Developers
Можете написать касмотный класслоадер, ему скармливать JARку по сети, он подгружает классы, запускает точку входа.
Вышло обновление - завершили приложение, грохнули весь класслоадер, вернулись к предыдущему пункту.
источник

АК

Артём Карташов in Java Developers
жарку нужно класть на диск
источник

АК

Артём Карташов in Java Developers
а без этого можно?
источник

RM

Ruslan Molchanov in Java Developers
Артём Карташов
так а в чем разница, если у меня и так на сокетах всё шуршит?
Не понимаю как RMI решит Вашу проблему.
источник

RM

Ruslan Molchanov in Java Developers
Артём Карташов
жарку нужно класть на диск
Зачем?
источник

АК

Артём Карташов in Java Developers
вот я и не понимаю, как её сунут пусть даже в кастомны класслоадер из памяти в виде байтмассива
источник

RM

Ruslan Molchanov in Java Developers
Опять таки.
Во-первых, в чем проблема класть джарку в /tmp и удалять по итогу?
Во-вторых, это необязательно, можно и в памяти это сделать. Просто зачем?
источник

АК

Артём Карташов in Java Developers
нужно именно в памяти, классов будет много и они будут очень часто меняться, по несколько раз в минуту
источник

RM

Ruslan Molchanov in Java Developers
Артём Карташов
вот я и не понимаю, как её сунут пусть даже в кастомны класслоадер из памяти в виде байтмассива
https://www.baeldung.com/java-classloaders
Вот здесь есть пример, в котором Евгений из массива байт определяет новый тип (класс).
источник

RM

Ruslan Molchanov in Java Developers
Артём Карташов
нужно именно в памяти, классов будет много и они будут очень часто меняться, по несколько раз в минуту
Мне кажется, Вы что-то не так задизайнили. Но несколько раз в минуту менять классы – однозначно неправильное использование JVM.
источник

RM

Ruslan Molchanov in Java Developers
Ruslan Molchanov
https://www.baeldung.com/java-classloaders
Вот здесь есть пример, в котором Евгений из массива байт определяет новый тип (класс).
Метод defineClass у родителя
источник

АК

Артём Карташов in Java Developers
не это уже чужой сервер, хочу его распаролелить, чтоб клиент вычислял именно задачи у себя а не сервер грузил, по сути они на сервере всё равно изолированы (клиенты) и если и будут пересечения то очень редко, это можно будет обыграть просто, кто первый посчитал того и тапки, остальные лесом. За ссылку пасибо!!!
источник

RM

Ruslan Molchanov in Java Developers
Я могу ошибаться с Вашими целями, но может быть будет лучше клиентом сделать исполняемую машину. Например, Вы можете научить приложение исполнять Kotlin, Groovy, Lua, Javascript и не париться с чисткой памяти. Засылаете туда скрипты и вуаля!
источник

RM

Ruslan Molchanov in Java Developers
Ruslan Molchanov
Я могу ошибаться с Вашими целями, но может быть будет лучше клиентом сделать исполняемую машину. Например, Вы можете научить приложение исполнять Kotlin, Groovy, Lua, Javascript и не париться с чисткой памяти. Засылаете туда скрипты и вуаля!
источник

АК

Артём Карташов in Java Developers
сервер это конечно в планах, но не приоритетно, так что посмотрим как пойдет после обкатки хотябы клиента, тут главное чтоб работало с максимальным покрытием самых разных клиентов, машин, сетей и т.п.. Другие языки там не нужны, там всё на java
источник

RM

Ruslan Molchanov in Java Developers
В любом случае, совет. Помните про мемори лики, т.к. выпиливать типы – не самая тривиальная задача.
Надеюсь, вы умеете пользоваться профилировщиками.
источник