2015-11-12 3 views
0

В настоящее время мы пытаемся улучшить производительность проблемы планирования, которую мы внедрили в OptaPlanner. Наша модель имеет ~ 45 000 цепных переменных, и после профилирования приложения кажется, что основное узкое место вокруг клонирования. Примерно 90% времени выполнения ЦП потребляется вызовами FieldAccessingSolutionCloner.Советы по повышению эффективности клонирования

Мы уже пытались сделать нашу объектную модель более легкой, уменьшив количество карт и наборов в рамках PlanningEntities, изменив поля на примитивы, где это возможно, но из вашего собственного опыта OptaPlanner есть ли у вас какие-либо советы о том, как ускорить клонирование представление?

+0

Частично дублируется [этот вопрос списка рассылки] (https://groups.google.com/forum/#!topic/optaplanner-dev/zBAc2Bz1eAQ) –

+0

Да, мой коллега искал потенциальные решения. Мы закончили создание пользовательского клонера, который сделал огромную разницу. – Alastair

+1

Идея клонирования для инкрементного решения https://issues.jboss.org/browse/PLANNER-818 https://stackoverflow.com/questions/44170732/solution-cloning-happening-at-steps-that-produce-a-new- лучший счет-в-ряд –

ответ

2

Вы пробовали написать пользовательский клонер? См. Документы. По умолчанию нужно полагаться на отражение, поэтому оно медленнее.

Также структура вашей доменной модели влияет на сколько вам нужно клонировать (независимо, если вы идете обычай или нет): При удалении вашего решения и планирования Entities классы, делать другие классы домена компилироваться? Если да, то клон минимален. Если нет, это не так.

Смежные вопросы