Warum ist Flask url_for zu langsam?

9

Ich habe es mit diesem Code getestet:

%Vor%

Ergebnisse:

  • /1 Requests per second: 2721.94 [#/sec] (mean)
  • /10 Requests per second: 1080.16 [#/sec] (mean)
  • /100 Requests per second: 144.66 [#/sec] (mean)
imbolc 23.05.2013, 12:13
quelle

1 Antwort

2

Tatsächlich ist es irgendwie langsam.

Gute Nachrichten sind, dass die Komplexität der Zeit linear ist, O(1) .

Unten ist cProfile dump

Wenn ich ein Flaschenentwickler wäre, würde ich mir ansehen, warum url_for sowohl urljoin als auch urlsplit aufruft. Wenn ich den Werkzeugcode richtig verstehe, führt er eine Validierung der resultierenden URL durch.

%Vor%

Ich habe 2-3 praktische Lösungen für Sie:

  • Cache (am häufigsten) url_for results
  • offload url_for computation zu client / js
  • Hardcode-URL-Generation

Wenn Sie eine RESTful API mit numerischer ID haben, könnte die letzte Option wie folgt aussehen:

%Vor%     
Dima Tisnek 11.06.2013 13:30
quelle

Tags und Links