Я думаю, что память не так важна, учитывая количество байтов, которые вы всегда должны хранить, является более или менее постоянным.Размер отображения значения ключа эквивалентен, независимо от того, какой механизм вы используете.
Однако для производительности это не выполняется.При использовании набора значений ключей (например, хеш-таблицы или словаря) хеш, который используется в словаре, вычисляется с использованием входных данных.Т.е. если ваш ключ "abcdefg", он хэшируется с помощью функции GetHashcode ().Эта функция, очевидно, использует больше вычислительной мощности, если ваш ввод в gethashcode (то есть входная строка abcdefg) длиннее.Например, вы можете сделать gethashcode константной функцией O (1) с точки зрения длины строки, переопределив функцию и разрешив ей возвращать хеш-код, основанный на постоянном количестве входных символов вашей строки.Конечно, это может нарушить баланс вашей хэш-таблицы, что приведет к замедлению поиска.Вы должны проверить это, чтобы быть уверенным.
Другое решение состоит в том, чтобы сохранить словари / хеш-таблицы для каждого языка и использовать в качестве ключа некоторые короткие сокращения.При поиске у вас будет оператор switch, который выбирает правильный словарь и извлекает строку, используя сокращенный ключ.Недостатком этого является то, что вы увеличиваете использование памяти, но в теории уменьшает время поиска.Кроме того, в этом случае вы должны провести сравнительный анализ, чтобы убедиться, что есть (положительная) разница.
Как и sidenote, для меня это звучит как преждевременная оптимизация.Я не думаю, что такие поиски станут узким местом для вашего приложения.