Строковые константы времени компиляции (интернализированные строки) и литералы можно сравнить с символом ==, поскольку им присваивается одна и та же ссылка во время компиляции, если они как-то равны.Значительно ли строковые константы/литералы в коде замедляются?
Означает ли это, что для компиляции кода, состоящего из n строковых литералов, требуется n log (n) времени для компиляции?
Я задаю этот вопрос здесь, потому что кто-то может уже знать ответ, и я не уверен, что могу написать тест, который измеряет эффект надежным, воспроизводимым или значимым способом. Или что этот тест будет отражать сдерживающие факторы реального мира и т. Д.
Я собираюсь опубликовать любые тестовые примеры, которые я могу придумать, но не стесняйтесь предлагать некоторые из них, я буду реализовывать их, как только смогу найти время ,
Я помню, что в последний раз, когда я пытался нанести около сотни килобайт текста в строку, это не слишком хорошо закончилось. Я считаю, что время компиляции также зависит от длины строки, но не уверен в тренде на этом –
Почему время компиляции было бы разницей здесь? Сравнение все еще происходит во время выполнения. –
Это просто хорошая догадка, но я думаю, что строковые литералы, такие как '' this '', просто занимают пространство и потребляют время чтения и записи на диске, но строковые константы, такие как' final String s = «Something»; 'будут потреблять некоторые время компиляции тоже, и если слишком много с большим количеством вариантов использования, это повлияет на время компиляции. –