Передача аргумента или его использование в оптимизации класса

Я создаю искусственный интеллект гомоку, и мне было интересно, что лучше всего оптимизировать, чтобы мой стол был доступен во всех моих функциях. Эта таблица имеет вид char map[MAPSIZE][MAPSIZE], В моем алгоритме у меня много доступа для чтения к этой таблице.

Это быстрее, чтобы получить доступ к этой карте, если она передается как:

  • Аргумент во всех моих функциях.
  • Член моего класса алгоритмов.
  • Глобальная переменная.
  • Аргумент для функции, но как указатель.

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

Спасибо за ваше время,

0

Решение

Если имеет смысл быть членом класса — сделайте его членом класса. Это проектное решение, которое не должно приниматься из соображений оптимизации (по крайней мере, пока, вы можете позже, после измерения, компромиссного проектирования для производительности, если вы считаете, что оно того стоит).

Альтернативой является передача его по ссылке (или по указателю, но ссылка больше на C ++).

3

Другие решения

Это быстрее, чтобы получить доступ к этой карте, если она передается как: …

Различные методы влекут за собой разные затраты времени выполнения. Однако разница почти наверняка не имеет значения, если вы не делаете что-то крайне неэффективное (например, излишне копируйте всю таблицу в каждом методе).

Я предлагаю вам спроектировать это с правильностью и ясностью, а потом позаботиться об оптимизации.

2

По вопросам рекламы [email protected]