Jos*_*mit 6 python django google-app-engine python-2.7 google-cloud-sql
几个星期前我问过这个问题.今天我实际上已经编写并发布了一个标准的Django应用程序,即由Google CloudSQL支持的全功能关系数据库支持(以及因此功能齐全的Django管理员).唯一一次我不得不偏离做标准的Django方式是发送电子邮件(必须以GAE的方式做).我的设置是GAE 1.6.4,Python2.7,Django 1.3利用下面的app.yaml:
libraries:
- name: django
version: "1.3"
Run Code Online (Sandbox Code Playgroud)
但是,我确实需要你建议明确可行的步骤,以改善这个Django应用程序冷时的初始请求的响应时间.我webapp2在GAE上有一个简单的网站,它没有点击数据库,而当冷时,响应时间是1.56s.当冷的时候,Django会在数据库中遇到2个查询(count(*)对每个包含少于300行的表进行两次查询),响应时间为10.73s!不鼓励主页;)
想到的事情是删除middleware我不需要的类和其他特定于Django的优化.然而,从GAE角度来看改善事物的技巧也非常有用.
NB我不希望这成为关于在GAE上使用Django的优点的讨论.我可以提一下,我个人的Django专业知识以及由此产生的开发效率,在采用Django而不是其他框架方面确实很重要.此外,使用CloudSQL,很容易远离GAE(希望不是!),因为Django代码可以在其他任何地方使用很少(或没有)修改.关于这个主题的相关讨论可以在这里和这里找到.
我没有完整的答案,但我正在做出贡献,因为我也想找到解决方案。我目前正在使用一个正在运行的 cron 作业(我实际上需要 cron 作业,所以它不仅仅是为了让我的应用程序保持活动状态)。
我在 GAE/Python/Django 相关邮件列表之一中看到过,与 webapp 相比,加载所有 Django 文件所需的时间很重要,因此应该从部署中删除不使用的 django 组件还可以改善您的启动时间。通过删除 contrib 文件夹的某些部分,我已经能够节省大约 3 秒的时间。我将它们排除在我的 app.yaml 中。
我的启动时间仍然在 6 秒左右(完整应用程序、Django-nonrel、HRD)。当我的应用程序更简单时,它过去更像是 4。
我怀疑 Django 在启动时验证其所有模型,并且处理时间很长。如果您有时间尝试使用绝对 0 模型的应用程序,我很好奇它是否会产生任何影响。
我也很好奇您的两个初始查询是否会产生重大影响。
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |