Посмотрите на функцию FIND_IN_SET для MySQL.
SELECT *
FROM shirts
WHERE FIND_IN_SET('1',colors) > 0
Я думаю, что может произойти, что ваша реализация рекурсивна, и из-за этого GC никогда не сможет выпустить все ваши предыдущие копии! (Или, может быть, есть какая-то другая причина, по которой ГХ не может выпустить эти предметы)
В эволюционном программировании вам часто нужно только сохранить определенное количество самых результативных «детей», если я правильно помню. Вы должны хранить отдельный список этих детей и вставлять новых в список, но также обязательно удалять старые! Теперь также убедитесь, что ваша реализация не является рекурсивной, и больше нет ссылок на старые экземпляры. Если вы сделаете это правильно, GC правильно освободит все экземпляры, которые вы не используете, и ваши проблемы могут просто исчезнуть:)
РЕДАКТИРОВАТЬ: после комментария OP:
mutate_neuralnetwork
. Но, глядя на ваш код и принимая во внимание тот факт, что копирование становится все более медленным, возможно, ваша структура данных рекурсивна. То есть если copied_animal
содержит ссылку на предыдущий экземпляр, который, в свою очередь, ссылается и даже на более раннюю версию, и тогда вы можете представить, что в какой-то момент цепочка становится настолько длинной, что ее копирование занимает много времени. Это были бы старые ссылки. Убедитесь, что у вас нет рекурсивной структуры данных, ИЛИ иногда установка переменных на None может помочь GC определить, что они больше не нужны.