А то у вас так частенько не делается, да еще плюс своих косяков с метатипами и шаблонами хватает. То что динамика в принципе медленнее статики никто не спорит, у нее как известно другие плюсы, а при нормальном подходе она медленнее не сильно, так что смысл есть.Во первых такие проверки в принципе не изврат, и любой мало-мальски спец, если он не пытается притянуть осла за уши, это понимает, ибо просто статически проверить входящие данные часто не достаточно, их приходится несколько более хитро сопоставлять, в т.ч. с динамикой, а если даже и не так то всеравно, ошибку надо обрабатывать, и тут мы без них уже никуда не денемся.
А во вторых то что оно у вас жестко тормозило говорит о том что вы напихали их куда не попадя, выбрали неверную архитектуру, или вообще инструмент, т.е. под ту вашу задачу JS не подходил, это всетаки не парсилка/числодробилка, это высокоуровневый скриптовый язык, и задачи у него соответствующие. При нормальных же раскладах я еще ни разу не видел чтобы такие проверки вызывали жесткие тормоза, как правило есть другие более узкие места, и как правило вообще не с JS связанные.