除了'1000'的限制(查询返回记录不能超过1000条)外, 今天发现GAE还有一个'1M'的限制.
我在用Memcache缓存一个大List时碰到MemoryError, error message写明了一个cached item不能超过1000000bytes. 跑到group上问了一下. Aral也碰到了同样的问题. 除了memcache外, 原来GAE里面很多地方都有1M的限制(以下翻译自Aral的blog):
Prateek在回复中还加了一条: Image API 也有1M的限制; Google可能是不希望某个程序员的BT代码把服务器拖垮. 我们从.net的GC运行原理也了解频繁创建生存周期比较短的大对象会影响到程序性能. 在.net中这个标准是85000字节. 大于这个标准的对象在一个专门的堆中分配, 而且一直算是第二代. 因此要么就是这块内存一直不被回收, 要么就是频繁收集第二代对象.
欢迎和我交流 Google App Engine的开发. 欢迎到我开发的第一个GAE app看看: http://feedzshare.appspot.com
我在用Memcache缓存一个大List时碰到MemoryError, error message写明了一个cached item不能超过1000000bytes. 跑到group上问了一下. Aral也碰到了同样的问题. 除了memcache外, 原来GAE里面很多地方都有1M的限制(以下翻译自Aral的blog):
- 一个数据结构不能大于1M, 否则会抛出MemoryError
- Response不能返回超过1M的内容, 否则会抛出异常:'TTP response was too large'
- 一个Model的实例(相当于一条数据库记录)不能超过1M, 否则会遇到RequestTooLarge 异常. (我曾遇到过这个异常)
Prateek在回复中还加了一条: Image API 也有1M的限制; Google可能是不希望某个程序员的BT代码把服务器拖垮. 我们从.net的GC运行原理也了解频繁创建生存周期比较短的大对象会影响到程序性能. 在.net中这个标准是85000字节. 大于这个标准的对象在一个专门的堆中分配, 而且一直算是第二代. 因此要么就是这块内存一直不被回收, 要么就是频繁收集第二代对象.
欢迎和我交流 Google App Engine的开发. 欢迎到我开发的第一个GAE app看看: http://feedzshare.appspot.com
分类:
GAE&Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述