Я унаследовал некоторый код Python, который используется для создания огромных таблиц (до 19 колонок шириной 5000 строк). Для таблицы, нарисованной на экране, потребовалось девять секунд. Я заметил, что каждая строка была добавлена с помощью этого кода:
sTable = sTable + '\n' + GetRow()
где sTable
- строка.
Я изменил это на:
sTable += '\n' + GetRow()
и я заметил, что таблица теперь появилась в шесть секунд.
И затем я изменил его на:
sTable += '\n%s' % GetRow()
на основе этих советов по производительности Python (еще шесть секунд).
Так как это вызывалось около 5000 раз, это указывало на проблему с производительностью. Но почему была такая большая разница? И почему компилятор не выявил проблему в первой версии и не оптимизировал ее?