Хмм .. Вы, конечно, могли бы написать некоторые функции C, чтобы работа выполнялась на стороне C, но, как указывает другой ответ, вы можете застрять, толкая строку или ее части в любом случае.
Примечание: Lua хранит строки только один раз, когда они вводятся. То есть: если у меня есть 1 строка, содержащая «Быстрая коричневая лиса перепрыгивает через ленивую собаку», и я толкаю ее в Lua, и других струнных объектов нет которые содержат эту строку, она создаст новую копию. Если, с другой стороны, я уже вставил его, вы просто получите указатель на эту первую строку, поэтому проверки на равенство довольно дешевы. Я думаю, что импорт этих строк может быть немного дорогим, если это делается с высокой частотой, однако сравнения, опять же, дешевы.
Я бы попробовал профилировать то, что вы внедряете, и посмотреть, соответствует ли производительность вашим ожиданиям.
Как документ Lua Performance Tips (который я рекомендую прочитать, если вы думаете о максимизации производительности с Lua), две максимумы программирования, связанные с оптимизацией:
Правило № 1: Не делайте этого.
Правило № 2: Пока не делайте этого. (только для экспертов)