0

我正在使用 GAE 构建一个 Web 应用程序。

我一直在自己对 GAE python 项目结构进行一些研究,

并发现如何将我的处理程序放置在项目中并没有固定的趋势。

截至目前,我将所有处理程序(控制器)放在 main.py 中,

并将所有 url (/.*) 定向到 main.application。

这会让我的应用程序变慢吗?

谢谢你!

4

2 回答 2

1

不,这不影响速度。无论如何,您的代码都需要加载,因此是否全部在一个文件中都没有区别。它当然会使文件更复杂,但这是你的问题,而不是 GAE 的问题。

于 2013-10-08T08:30:19.757 回答
1

一般来说,这不会使您的应用程序变慢,但是它可能会减慢您的实例启动时间,但除非您有非常大的复杂应用程序,否则这通常不是问题。

每当 GAE 为您启动一个新实例时,实例启动时间就会发挥作用。例如,如果您的应用程序长时间未使用并且您在很长一段时间内启动它一次,或者例如,如果您的应用程序非常繁忙并且需要一个新实例来处理负载。

python 根据需要加载您的模块。因此,如果您启动一个实例,并且请求转到 main.py,那么 main.py 以及与之关联的所有模块都将被加载。如果您的应用程序很大,这可能需要几秒钟。例如,假设加载应用程序中的每个模块需要 6 秒。对于发出该请求的人来说,这是 6 秒的等待时间。对该加载实例的后续请求将很快。

可以将处理程序分解为单独的模块。如果\a 的处理程序只需要很少的代码,那么将\a 放在一个单独的文件中将减少\a 的响应时间。但是,当您加载包含所有其余代码的 \b 时,加载需要一段时间。因此,可能需要 6 秒的负载,并可能将其分解为几个可能需要 2 秒的请求。

这种类型的优化实际上取决于您需要为每个请求加载的库。您通常希望在以后遇到问题时执行此操作,而不是预先为此目的设计布局,因为这很难预测。

App Engine 预热请求也有助于缓解此问题。

于 2013-10-08T16:29:39.657 回答