fman42f, собственно вопросы выше, поэтому что, если нет еще каких-то неизвестных тормозов в виде foreign keys, например, то вероятно уперлись в производительность InnoDB на конкретном диске. Можно попробовать loader и что-нибудь извращенное: либо "оптимизация" InnoDB (по-сути убивание отказоустойчивости), либо загрузку через промежуточную таблицу в MyISAM (с которой работает в разы быстрее почему-то).
проверял на горячую, вставка идет понемножку
в смысле понемножку? весь чанк в 30k, если вы его вставляете одним insert, должен появляться мновенно, а не понемножку.
Дмитрий, так то да, если бы коммитились после каждой записи, но при чанке в 30к скорее больше будет накладных расходов на поддержание snapshot. И чем активнее используется таблица, тем дольше будут блокиовки. Тут скорее может немного улучшить ситуацию уменьшение размера чанка.
Вставка в одну таблицу? Другие таблицы ссылаются на текущую? Сколько записей в текущей таблице? Партиционирование, триггеры или что-то еще?
Исключите чисто диск, создайте новую таблицу и проверьте скорость на ней.
постоянно получал по шее от менеджмента за то что очень медленно все делаю
Есть большая разница, между "не умею писать код" и "все делаю медленно". Если действительно не можете написать, то что требуется, значит вернитесь к более простым задачам, не все сразу. Если считаете, что медленно делаете, то мнение менеджера в этом вопросе совсем не показатель, ориентируйтесь на других разработчиков.
Adamos, ну да, проглядел, что все помещается в 64бит. Подсчет кол-ва установленных битов не простая операция, вот статья с наиболее быстрыми способами https://habr.com/ru/articles/276957/
Если они в разных vlan, кто-то же должен форвардить из одного в другой. Скорее всего это и будет проблемной точкой. Посмотрите трейсером, какие узлы проходит пакет в разных вариантах.
И на кой vlan в вашей сети, если они все равно друг к другу в гости ходят. Почему бы не настроить коммутаторы перед пк, чтобы они тегировали пакеты в нужный vlan и наоборот?
tukreb, сложно сказать, не зная всех аспектов задачи. Мне все же кажется, лучше бы сделать конфиг, что для чего вызывать и работать на его основе. И не понадобится инстанцировать все классы.
Интерфейсы вещь техническая, не уверен, что правильно строить на них бизнес-логику.
fomiash, не споря, как лучше, я бы сделал по-другому.
Родительский класс при создании регистрирует себя в некотором объекте-оповещалке, это наследуется всеми потомками. При наступлении события, мы кидаем его в оповещалку и она отправляет его всем зарегестрированным слушателям. В общем Observer. Т.е. у вас в классе будет явно видна регистрация для получения событий, вместо неявного вызова метода из произвольного участка кода.
в смысле понемножку? весь чанк в 30k, если вы его вставляете одним insert, должен появляться мновенно, а не понемножку.