code: def checkPerformance(self) -> Optional[bool]:
          
          logger.trace("{} checking its performance".format(self))
  
          # Move ahead only if the node has synchronized its state with other
          # nodes
          if not self.isParticipating:
              return
  
          if self.view_change_in_progress:
              return
  
          if not self._update_new_ordered_reqs_count():
              logger.trace("{} ordered no new requests".format(self))
              return
  
          if self.instances.masterId is not None:
              self.sendNodeRequestSpike()
  
              master_throughput, backup_throughput = self.monitor.getThroughputs(0)
              if master_throughput is not None:
                  self.metrics.add_event(MetricsName.MONITOR_AVG_THROUGHPUT, master_throughput)
              if backup_throughput is not None:
                  self.metrics.add_event(MetricsName.BACKUP_MONITOR_AVG_THROUGHPUT, backup_throughput)
  
              avg_lat_master, avg_lat_backup = self.monitor.getLatencies()
              if avg_lat_master:
                  self.metrics.add_event(MetricsName.MONITOR_AVG_LATENCY, avg_lat_master)
  
              if avg_lat_backup:
                  self.metrics.add_event(MetricsName.BACKUP_MONITOR_AVG_LATENCY, avg_lat_backup)
  
              degraded_backups = self.monitor.areBackupsDegraded()
              if degraded_backups:
                  logger.display('{} backup instances performance degraded'.format(degraded_backups))
                  self.backup_instance_faulty_processor.on_backup_degradation(degraded_backups)
  
              if self.monitor.isMasterDegraded():
                  logger.display('{} master instance performance degraded'.format(self))
                  self.view_changer.on_master_degradation()
                  return False
              else:
                  logger.trace("{}'s master has higher performance than backups".
                               format(self))
          return True
docs: Check if master instance is slow and send an instance change request.
          :returns True if master performance is OK, False if performance
          degraded, None if the check was needed