def METHOD_NAME(self):
    """
    Standard method for executing performance test runs.
    This method calls the build_model, initialize_model and solve_model methods
    thus developers must provide these. This method logs the following information:
    1. Model construction time
    2. Time required to assert unit consistency
    3. Model initialization time
    4. Model solution time (post-initialization)
    Developers may overload this method to customize the information recorded.
    Note that dynamic models currently fail unit consistency checks, and thus
    this method will fail if used on a dynamic model (for now).
    Args:
        None
    """
    # Build model and record execution time
    gc.collect()
    timer = TicTocTimer()
    model = self.build_model()
    self.recordData("build model", timer.toc("build model"))
    assert degrees_of_freedom(model) == 0
    # Check unit consistency and record execution time
    if self.TEST_UNITS:
        gc.collect()
        timer.tic(None)
        assert_units_consistent(model)
        self.recordData("unit consistency", timer.toc("unit consistency"))
    # Initialize model and record execution time
    gc.collect()
    timer.tic(None)
    self.initialize_model(model)
    self.recordData("initialize", timer.toc("initialize"))
    # Solve model and record execution time
    gc.collect()
    timer.tic(None)
    self.solve_model(model)
    self.recordData("final solve", timer.toc("final solve"))