升级到web2py后2.14.6页面加载时间增加了50倍

时间:2016-12-09 07:44:59

标签: python web2py web2py-modules

我将web2py从2.3.2升级到2.14.6。然后进行了所有必需的更改,例如更新/替换web2py.jsjquery.jsweb2py_ajax.htmlappadmin.pyappadmin.html。然后进行了一些css更改以匹配旧UI。后端代码没有变化。

现在,当我在web2py 2.14.6上访问包含web2py网格(SQLFORM.grid())的应用程序页面时,需要 34.775 ,并且版本2.3.2相同需要 0.686 的相同记录数的页面。 Grid有大约4600条记录。没有网格的页面在两个版本上加载大约相同的时间。

我做了时间分析,发现gluon/html.py占用了大部分时间。

时间分析结果

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

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

此外,我在网格定义之前和之后添加了print语句,在2.3.2上花了18秒2.14.6和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。

为什么较新的版本需要更多时间来加载网格?升级后应用程序代码是否需要进行任何更改?

请帮我解决这个问题。

谢谢

0 个答案:

没有答案