【发布时间】:2014-10-19 16:07:59
【问题描述】:
我继承了一些 Python 代码,这些代码用于创建最多 19 列宽、5000 行的表格。最初,表格在屏幕上绘制需要 9 秒,但 I managed to reduce that 需要 6 秒。
现在我想进一步优化它。不出所料,我已经看到瓶颈是创建单元格内容的部分。代码是:
sText += '<td align="middle">%s</td>' % sCellContents
其中sText 和sCellContents 是字符串。 (格式化单元格内容的样式可能会有所不同。)
如果我删除了除 <td></td> 标记之外的所有内容,则速度保持不变,这意味着样式对性能没有影响。但是如果我删除这些标签(从而将内容放在表格之外),屏幕会在 三秒 后显示(当然,格式很糟糕)。
有什么方法可以在保留格式的同时优化该行吗?
我已经尝试过使用列表:
lText.append(sCellContents)
然后在最后加入:
sText = ''.join(lText)
但这并没有什么不同。
【问题讨论】:
-
你试过像 Mako 或 Jinja2 这样的模板引擎吗?
-
@MFB - 不,部分原因是我不熟悉这些其他选项,部分原因是我不想对遗留代码进行剧烈 (?) 更改。
-
还不错……但请花 2 分钟阅读本页的前几段:docs.makotemplates.org/en/latest/usage.html
-
" 表格在屏幕上绘制花了 9 秒" 出于好奇,您是如何确定瓶颈存在于“生成 HTML”而不是“浏览器端”?您的 HTML 的字节大小是多少?
-
@Wikis 你有profiled你的代码吗?
标签: python html performance list html-table