Для класса Я работаю над интерпретатором, который в настоящее время работает на сканере. Будучи классом, который будет называться много раз, я хотел бы, чтобы он был оптимизирован для скорости. В сканере, чтобы классифицировать оператора, вы должны сравнить текущий токен с 6 операторами. Какой метод лучше всего подходит для скорости, но также и для удобочитаемости.Как лучше всего обрабатывать многие случаи приема
- Во многих случаях в качестве, если оператор
- Loop через массив символов каждого оператора и сравнить
- переключатель заявление
Это единственные случаи я мог думать. Что лучше, или если у вас есть лучший подход, пожалуйста, поделитесь. Я реализовал # 2, потому что он занимает наименьшее количество строк кода.
Не беспокойтесь о «скорости», пока не сможете продемонстрировать, что это проблема. Вы снижаете преждевременную оптимизацию кроличьей дыры. Если бы я был вами, я бы использовал чередование регулярных выражений или класс символов. –
Операторы коммутатора наиболее читаемы при работе с одиночными лексерскими символами, и они несут относительно низкий средний ресурс IIRC. Просто придерживайтесь этого. – Qix
Я сомневаюсь, что вы увидите разницу в скорости только с 6 операторами. – 4castle