我有文件数据(特别是语言资源文件)。这些文件是使用机器翻译api(goog translate)自动生成的。它们相对不频繁地更改,但是当主设备更改(添加或更改新字符串)时,这会导致所有其他语言文件自动更新。
我正在尝试直接从blobstore提供这些文件或从memcache提供这些文件并将它们存储在数据存储区中。
哪个更快/更有效?
答案 0 :(得分:5)
答案 1 :(得分:1)
这实际上取决于你的服务。当人们谈论blobstore时,他们通常谈论不适合memcache的大数据(媒体文件)。我们的应用程序提供了大量的音频文件,我发现blobstore特别适合这个,因为它支持progressive-http下载。
在这两种情况下,查找时间几乎是瞬时的(它们都只是地图,您可以通过键查找数据)。服务它所需的时间取决于要返回的项目。我想不出有什么理由为什么我会从blobstore中取出一些东西并把它放在memcache中。它真的不会随时节省。
现在数据存储区是一个不同的野兽......
答案 2 :(得分:-2)
每个“更快”问题的答案是“基准测试”。您的设置的特殊性(磁盘速度,内存访问延迟,带宽,恶魔攻击)最多可以对性能变化做出任何一般性回答。您在Google App Engine中运行这一事实只会让您更加努力 - 您不会知道您将获得哪些硬件!所以测试它。
也就是说,Google提供的本地(ish)内存缓存可能会比任何可能涉及到磁盘的内存更快。内存访问延迟比磁盘访问延迟快一个数量级,内存带宽是目前市场上最快的SSD的百倍或更多。
因此,如果您能够负担得起RAM,并希望最大限度地提高响应速度,那么将数据存储在内存中通常会更有效。