Как и при любой оптимизации производительности, первое, что нужно задать себе, - это время, затрачиваемое на настройку этих структур во время выполнения, действительно влияет на производительность. Какова большая площадь ваших структур? Сколько времени они берут, чтобы настроить? Если вы не измеряли это, вы занимаетесь преждевременной оптимизацией, которая, как мы знаем, является корнем всего зла.
Предполагая, что вы это сделали, давайте посмотрим на варианты. Сколько времени вы действительно можете сэкономить? Лучше всего использовать некоторую форму сериализации , но вам придется написать это самостоятельно; даже если вы определяете формат файла для хранения содержимого, файл должен быть проанализирован, и структуры данных в памяти должны быть созданы. Это займет время, и вряд ли это будет значительно быстрее, чем просто создание карт или наборов и их заполнение. На некоторых языках теоретически можно сохранить битовую структуру памяти для этих структур, но даже если вы можете сделать это, вы сделаете себя уязвимым для любых небольших изменений в версии компилятора, и любые ошибки, которые вы сделаете, будут практически невозможны для отладки.
Короче говоря, не делайте этого, если не уверены, что вам нужно. Даже тогда вы, вероятно, не должны этого делать. Единственный раз, когда вам нужно, если экономия времени (вероятно, очень маленькая) будет абсолютно означать разницу между успехом и неудачей вашего проекта.
Я не уверен, что это возможно - как создать объект перед запуском приложения?Если данные предварительно вычислены и сохранены в плоском файле (или в каком-либо другом формате сериализации), вы можете загрузить его во время запуска, но я не думаю, что компилятор может * создать * объект структуры данных для вас ... – FrustratedWithFormsDesigner
Там возможно, не будут какие-либо доступные инструменты для этого, но это возможно. Например, его можно создать массив во время компиляции. Если он был отсортирован, то функции компаньона могут использовать его как набор. –
@DutrowLLC: вы могли бы показать пример создания массива во время компиляции? – FrustratedWithFormsDesigner