Самый эффективный способ - вообще не выставлять такие низкоуровневые методы.Вместо этого вам нужно построить граф сцены , представляющий собой структуру данных, которая содержит представление всей сцены.Вы обновляете граф сцены в своем методе «update», а затем визуализируете все это за один раз в своем методе «render».
Другой, немного другой подход - перестроить весь граф сцены в каждом кадре.Это имеет то преимущество, что после составления графа сцены он не меняется.Таким образом, вы можете вызывать ваш метод "рендеринга" в другом потоке, пока ваш метод "обновления" проходит и одновременно создает сцену для следующего кадра .
Многие израсширенные эффекты просто невозможны без полного графа сцены.Вы не можете сделать отображение теней, например (которое требует, чтобы вы визуализировали сцену несколько раз под другим углом), вы не можете сделать отложенный рендеринг, оно также делает все, что зависит от отсортированного порядка рисования (например, альфа-смешение)очень сложно.
Судя по именам методов, похоже, что вы работаете в 2D, поэтому, хотя отображение теней, вероятно, не слишком высоко в вашем списке объектов, отложенный рендеринг с альфа-смешиванием может быть.