Не используйте std.variant!
Собственно сабж. Оказывается, Variant
, стандартная реализация tagged union в Phobos, плоховато подходит для вычислений в реальном времени. Не знаю, что там наворотили, но бенчмарки, которые я сделал при разработке GScript3, показали ускорение в 900%, когда я заменил Variant
на кастомный динамический тип. Я замерял выполнение скриптового счетчика от 0 до 100000000, и версия на Variant
завершилась за 45 секунд, версия на моем GsDynamic
— всего за 5!
О самом языке GScript3 расскажу в ближайшее время — я решил актуализировать этот старый проект и уже сделал много интересного.