Вот ради интереса решил проверить в VS 2019 с языком C#
Количество муравьев задал 100 000 000 чтобы видно было разницу.
Если создавать List муравьев то действительно затраты на пересчет занимают 719мс.
Если использовать второй подход и создать класс колонии с тем же количеством то подсчеты занимают уже 319мс. Вроде бы и очевидно что плюс.
Но!! Если мы будем создавать не лист а массив типа Ant[] antColony с таким же размером то пересчет по первому алгоритму занимает тадаа!!! 260-280 мс.
У каждого подхода есть свои плюсы и минусы. Панацеи не существует ни при одном подходе. Если получите прирост эффективности в одном то обязательно в другом месте это выродится в костыли которые и усложнят разработку и станут превратятся в последствии в страшный кошмар для поддержки. То есть как не крути а все равно все сводится к кривизне разработчика. Какие он инструменты и механизмы выбирает и каким образом применяет.
Вот ради интереса решил проверить в VS 2019 с языком C#
Количество муравьев задал 100 000 000 чтобы видно было разницу.
Если создавать List муравьев то действительно затраты на пересчет занимают 719мс.
Если использовать второй подход и создать класс колонии с тем же количеством то подсчеты занимают уже 319мс. Вроде бы и очевидно что плюс.
Но!! Если мы будем создавать не лист а массив типа Ant[] antColony с таким же размером то пересчет по первому алгоритму занимает тадаа!!! 260-280 мс.
У каждого подхода есть свои плюсы и минусы. Панацеи не существует ни при одном подходе. Если получите прирост эффективности в одном то обязательно в другом месте это выродится в костыли которые и усложнят разработку и станут превратятся в последствии в страшный кошмар для поддержки. То есть как не крути а все равно все сводится к кривизне разработчика. Какие он инструменты и механизмы выбирает и каким образом применяет.