0

web2py を 2.3.2 から 2.14.6 にアップグレードしました。次に、、、、、、の更新/交換web2py.jsなどjquery.js、必要なすべての変更を行いましweb2py_ajax.htmlた。次に、古い UI に合わせて CSS をいくつか変更しました。バックエンド コードに変更はありません。appadmin.pyappadmin.html

SQLFORM.grid()web2py 2.14.6 で web2py grid()を含むアプリケーション ページにアクセスすると、 34.775 かかり、同じレコード数のバージョン 2.3.2 の同じページでは0.686 かかります。グリッドには約 4600 のレコードがあります。グリッドのないページは、両方のバージョンで読み込みにほぼ同じ時間がかかりました。

時間プロファイリングを行ったところ、gluon/html.pyほとんどの時間がかかっていることがわかりました。

タイムプロファイリングの結果

2.3.2 : https://paste.ubuntu.com/23602259/

2.14.6 : https://paste.ubuntu.com/23602261/

また、グリッド定義の前後に print ステートメントを追加しました。2.14.6 では 18 秒、2.3.2 では 10ミリ秒かかりました。

SQLFORM.grid()定義は次のようになります。

grid = SQLFORM.grid(query,
        create=True,
        csv=False, deletable=False, searchable=search_query,
        showbuttontext=False, links=links, links_placement='left',
        maxtextlengths=textlengths, upload=URL('download'),
        fields=[db.notice.UIN, db.notice.classname, db.notice.title,
                db.notice.type,
                db.notice.description,
                db.notice.due_date, db.notice.status,
                db.notice.risk, db.notice.consequence,
                db.notice.document,
                db.notice.other])

上記のグリッドのサンプルクエリ-

((((user_notice.notice = notice.id) AND (user_notice.auth_user = 19)) AND
  (notice.status IN ('Closed','Open','New'))) AND
 (notice.due_date IS NOT NULL))

これをローカルコンピューターでテストしました-Ubuntu 14.04、Python 2.7.6、およびmysql db。

新しいバージョンではグリッドのロードに時間がかかるのはなぜですか? アップグレード後にアプリケーション コードに必要な変更はありますか?

この問題を解決するために私を助けてください。

ありがとうございました

4

0 に答える 0