То, что я в итоге сделал, было рассчитать одну итерацию моей «медленной» рутины. Если это занимает более 0,5 секунды, я решаю, что процессор слишком медленный, и выключаю его.
Чтобы пользовательский интерфейс не сбивался с толку, я добавляю настройки для переключения этой подпрограммы, и если я отключаю ее и пользователь выбирает, я отображаю сообщение о том, что «функция» интенсивно использует процессор и может иметь некоторые аспекты приложения кажутся вялыми, и они могут захотеть оставить его. Если они все равно его включат, это их выбор. Я проведу тестирование с помощью моих бета-тестеров, чтобы понять, не слишком ли это запутано.
Следующим шагом является оптимизация, но до сих пор я не смог сделать это намного быстрее.