1

我希望有人可以为我澄清这一点:

GAE 开发服务器是否也像生产服务器一样缓存 Python 全局范围?我的印象是没有。我在文档中找不到任何关于此的内容。

谢谢

五重奏

4

1 回答 1

1

是的,它确实。但是当您更改代码时,开发服务器会重新启动,并且您的模块具有全新的命名空间。

Python 在模块之间没有“全局范围”(例如 PHP 有)。它有命名空间。它们主要是模块名称空间(在您进行导入时创建),并且如您所知,GAE 缓存导入。此缓存在实例运行时处于活动状态。实例通常是 python 的进程,python 将变量值保存在内存中,直到至少有一个对它们的引用。

由于开发服务器模拟生产服务,它以相同的方式工作,但不同之处在于 devserver 监视您对文件所做的更改(我注意到不仅文件)并在需要时重新加载它们。为了保证重置模块导入缓存,您还需要像在生产中一样重新启动服务器。

于 2013-10-27T19:32:40.957 回答