2016-07-05 10 views
0

Ich verwende ein Python-Skript auf einem Android-Telefon mit SL4A (leider jetzt im Grunde tot). SL4A bietet Python 2.6.Beeinflusst der Timeout-Parameter in Pythons sqlite3-Modul die Geschwindigkeit normaler Transaktionen?

Dieses Skript (zusammen mit einigen anderen Prozessen) greift auf eine SQLite-Datenbank zu, die Pythons eingebautes sqlite3 Modul verwendet. Da es auf einem extrem niedrigen Telefon läuft, verursacht dies Nebenläufigkeitsprobleme, da Datenbankschreibvorgänge zwischen Prozessen kollidieren, was häufige Ausnahmen zur Folge hat.

damit umgehen, habe ich die timeout Parameter in der (siehe here zur Dokumentation) sqlite3.connect Anruf auf 20 Sekunden erhöht sich von den Standard 5 Sekunden. Laut den Dokumenten wird dies die Zeit erhöhen, die sqlite wartet, bevor die database is locked Ausnahme ausgelöst wird.

Meine Frage ist: Wird diese Erhöhung des Timeouts auch die Leistung anderer Transaktionen beeinflussen, d. H. Diejenigen, die nicht von einem anderen Prozess blockiert werden? Oder ist das nur eine Auszeit für diesen Zweck allein?

Ich bin besorgt, weil es scheint, eine Leistungsabnahme zu sein, nachdem ich diesen Parameter geändert habe. Angesichts der sehr begrenzten Umgebung, in der ich arbeite, war ich nicht in der Lage, herauszufinden, wie man die Leistung objektiv testet, also könnte diese Wahrnehmung falsch sein.

Antwort

1

Die timeout zählt nur, wenn zwei Transaktionen tatsächlich Konflikt.