gpt4 book ai didi

java - 如果其中的对象过多,开发服务器上的数据存储访问速度会非常慢

转载 作者:行者123 更新时间:2023-11-28 20:16:13 25 4
gpt4 key购买 nike

这个问题是 this question 的延续我之前问过。

如果您需要在 Datastore 中拥有多个对象,你们如何在开发服务器上测试您的项目?

用于 Java 的 GAE SDK 将 Datastore 保存在内存中这一事实让我很生气。如果我不能在我的机器上测试它,我就不能生成可靠的代码。我不知道其他工程师如何处理它。

目前我必须从 .bin 文件中预加载后端实例 servlet 中的数据,我将其放入 WEB-INF\

然后我在 DeferredTask 中测试一些代码.以下代码行(使用 Objectify)

List<AnonAnswer> answers = dao.ofy().query(AnonAnswer.class).ancestor(visitor).list();

运行 AnonAnswer 需要 1.5

public class AnonAnswer extends Answer implements Serializable {
@Parent Key<Visitor> parent;

public AnonAnswer() {
}

public Key<Visitor> getParent() {
return parent;
}

public void setParent(Key<Visitor> parent) {
this.parent = parent;
}
}

我有 2K Visitor 和 ~60K AnonAnswer 对象。 local_db.bin 只有 49MB。为什么这么慢?它在生产中立即(如我所料)工作(截至目前约有 300 万访问者)。

我准备花点时间写一些像gae-sqlite这样的东西但我在 Java 版本的 GAE SDK 中没有文件写入权限。我不知道为什么它在 Python 版本中有效。

我卡住了。有什么建议吗?

最佳答案

鉴于 App Engine 开发服务器似乎使用某种 HashMap 来存储对象,我猜测对 Protocol Buffer 字节或 Key 的原始对象执行了某种哈希 - 这些可能是相似的对象之间(即 id、父对象和种类)如果是这样,那么您最终可能会在对象之间发生太多冲突。

或者,Google 可能为 map 的大小设置了默认值,使其对于您的大小的数据集来说太小了。

关于java - 如果其中的对象过多,开发服务器上的数据存储访问速度会非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com