QStringLiteral
будет иметь самые низкие издержки времени выполнения.Это одна из немногих буквальных QString
инициализаций со стоимостью O (1).QLatin1String
будет довольно быстрым, но будет иметь длину O (N) в длине строки.Инициализация с строковым литералом C будет иметь наибольшую стоимость O (N) и эквивалентна IIRC QString::fromUtf8("…")
.2-я и 3-я инициализация также добавляет O (N) стоимости памяти, поскольку создается копия строки (!).Любая «экономия», которую вы сделали в размере исполняемого файла, таким образом, быстро исчезает при запуске программы: (
Инициализация с помощью QStringLiteral
выигрывает, хотя вы можете использовать современные пользовательские литералы C ++ 11, чтобы сделать его короче.Не поддавайтесь желанию использовать для него макрос: это будет крайне ошибочный подход, поскольку вы загрязняете глобальное пространство имен коротким символом.