Мы использовали Coco в течение 2 лет, заменив Antler, который мы использовали ранее. Для типичного запроса больших данных (нашего приложения) наш опыт таков. Предостережение: мы зависим от полной обработки Utf-8 с парсером, реализованным в C ++. Эти цифры относятся к языку, который имеет около 200 произведений EBNF.
- Antler: 260 usecs / query и объем памяти MEGABYTE 108 для сгенерированного парсера / лексера
- Coco: 220 usecs / query и 70 КБайт памяти для анализатора / сканера
Изначально у Coco было время запуска 1,2 мсек, и было сгенерировано несколько таблиц по 60 KBYTE для отображения Utf-8. Мы сделали много локальных улучшений в Coco, таких как устранение больших таблиц, устранение времени запуска 1,2 мс, значительно улучшенная внутренняя документация (а также документация в сгенерированном коде).
Наша версия Coco (с открытым исходным кодом) имеет крошечную площадь по сравнению с Antlr, очень значительно быстрее, без задержки запуска и просто ... работает. У него нет приятного пользовательского интерфейса Antler, но мы никогда не думали об этом, когда начали использовать Coco.