【问题标题】:Web2Py and MySQL at PythonAnywhere is much slower than locallyPythonAnywhere 的 Web2Py 和 MySQL 比本地慢得多
【发布时间】:2015-05-25 03:34:36
【问题描述】:

我的应用是 MySQL 上的 Web2Py,主要由查询和文本结果的简单显示组成。没有图片、视频或花哨的 CSS。

在本地,查询响应时间是亚秒级。 部署到 PythonAnywhere(使用 Web2Py 书中的几个基本效率技巧)——相同的查询可能需要 7-8 秒! PA 支持人员提到,我的代码效率低下,在本地并不明显,这可能会成为网络上的问题。 好的...我应该寻找什么样的低效率?

马西莫的想法:

一种可能性是在您的本地计算机上,数据库和 服务器在同一台机器上运行。在 pythonanywhere (和大多数托管) 它们可能在不同的机器上运行,因此您有网络延迟。 此外,我不知道mysql实例是专用的还是共享的 在许多用户之间。

有什么想法可以提高在 PythonAnywhere 上托管时的性能吗? 有人遇到过类似问题吗?

【问题讨论】:

  • 这就是为什么我的开发数据库服务器使用 NAS 存储在 sheevaplug(512MB 内存上 1.2Ghz)上运行的一个原因。所有及时的查询和添加的每个查询都将导致(显着)减速。这是oldskool,但效果很好。此外,使用db._timings(在使用{{=response.toolbar()}} 时很容易暴露)有助于找到重复和缓慢的查询。

标签: mysql web2py pythonanywhere


【解决方案1】:

这里有两种可能性——第一种是前几天 PythonAnywhere 上的数据库服务器速度慢的结果(请参阅this forum thread,也许你也在那儿发帖?)

第二个可能是延迟问题。将每页发出大量请求的站点放在远程主机上后,它们的运行速度会明显变慢。浏览器通常一次会发出大约 10 个并行请求,因此加载(例如)20 个 CSS 文件、JavaScript 文件或图像的页面将花费至少两倍的从客户端到服务器的往返时间来加载。 30 个文件,3 次,以此类推。一旦你在客户端和服务器上都增加了处理时间,事情就会变得很慢。

【讨论】:

  • OP 提到该网站有基于文本的页面,几乎没有额外的资产。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2014-04-15
  • 2016-05-13
  • 2015-07-22
  • 2021-11-13
  • 1970-01-01
  • 2020-03-01
相关资源
最近更新 更多