我正在帮助用Django开发一个相当复杂的Web应用程序。但是有些页面需要10秒以上才能渲染。我似乎无法深究为什么这么慢。 Django调试工具栏显示瓶颈显然是CPU,而不是数据库或其他任何东西,但它没有进一步细节(据我所见)。我已经尝试在系统上运行一个分析器,但是也无法对此发生的事情做头或尾。它只显示深层内部占绝大多数时间,尤其是<method 'poll' of 'select.poll' objects>
,以及builtins.hasattr
,getmodule
,ismodule
等其他功能。
我还尝试手动单步执行代码,或者在随机点暂停执行以尝试捕捉正在发生的事情。我可以看到,通过大量的import语句需要相当长的时间,但是它会在render()函数中花费大量的时间,特别是需要长时间加载大量的模型字段 - 按顺序排序100个领域。
发生的一切都不是我看错了,除了一切都需要运行的疯狂时间。就好像Python在进行任何处理之前只需要永远加载和解析每个.py文件一样。然而,这一切都在带有SSD的全新数字海洋服务器上运行,包括Gunicorn,PostgreSQL和Nginx。有没有人有任何提示我怎么能到底?