public function getExecutedCommandsAsString()
    {
        $output = "";
        $executedCommands = $this->getExecutedCommands();
        $aggregatedCommandsExecuted = array();
        $aggregatedCommandExecutionTime = array();

        /** @var AbstractCommand $executedCommand */
        foreach ($executedCommands as $executedCommand) {
            $outputForExecutedCommand = $this->getOutputForExecutedCommand($executedCommand);

            if (!isset($aggregatedCommandsExecuted[$outputForExecutedCommand])) {
                $aggregatedCommandsExecuted[$outputForExecutedCommand] = 0;
            }

            $aggregatedCommandsExecuted[$outputForExecutedCommand] = $aggregatedCommandsExecuted[$outputForExecutedCommand] + 1;

            $executionTime = $executedCommand->getExecutionTimeInMilliseconds();

            if ($executionTime < 0) {
                $executionTime = 0;
            }

            if (isset($aggregatedCommandExecutionTime[$outputForExecutedCommand]) && $executionTime > 0) {
                $aggregatedCommandExecutionTime[$outputForExecutedCommand] = $aggregatedCommandExecutionTime[$outputForExecutedCommand] + $executionTime;
            } else {
                $aggregatedCommandExecutionTime[$outputForExecutedCommand] = $executionTime;
            }
        }

        foreach ($aggregatedCommandsExecuted as $outputForExecutedCommand => $count) {
            if (!empty($output)) {
                $output .= ", ";
            }

            $output .= "{$outputForExecutedCommand}";

            $output .= "[" . $aggregatedCommandExecutionTime[$outputForExecutedCommand] . "ms]";

            if ($count > 1) {
                $output .= "x{$count}";
            }
        }

        return $output;
    }