Python langsam beim Strings-anhängen
Beim verarbeiten und zusammenführen vieler und großer Übersetzungsdateien fiel mir auf, dass es mit String-Anhängen zu sehr langen Laufzeiten führte.
Python ist hier wohl nicht sehr gut optimiert. Schlussendlich habe ich es auf "list" umgearbeitet.
- strings_test.py
import time start = time.time() str1 = "" for i in range(1,10000000): str1 += "A"*1000 print("Concat took: " + str(time.time() - start)) start = time.time() str1 = "" str2 = [] for i in range(1,10000000): str2.append("B"*1000) print("List collection took: " + str(time.time() - start)) start = time.time() str1 = "\n".join(str2) print("Final join took: " + str(time.time() - start))
Concat took: 4.820241689682007 List collection took: 0.9731082916259766 Final join took: 2.7453043460845947