gpt4 book ai didi

java - 每次计算逻辑、访问数据库、文件或 HashMap 是否更快?

转载 作者:行者123 更新时间:2023-12-02 09:12:27 26 4
gpt4 key购买 nike

当我用户按下按钮时,我有一段逻辑会经常执行。然而,我有这样的想法:“如果我只是将这些信息存储在一个表中,并在需要时抓取它,而不是每次都计算它,也许会更有效。

那么我们开始吧:哪个进程消耗的处理时间/资源最少?

背景信息:对象数组平均可能有 10 个项目(尽管该对象的成员变量之一是另一个最多包含 4 个项目的数组)。此外,每次该对象发生更改时,它都会发送到 C++ 中的 App Engine,并且按钮纹理会在前端发生更改。此 App Engine 不断运行高优先级进程,并且不会因 UI 线程中的大量工作而减慢速度。

此外,如果要创建任何数据库、文件、HashMap 等,它将包含大约 100 行整数。 (HashMap 或许能够将其中一些压缩为公共(public)键/值对)

1)(不是一个糟糕的解决方案,但我觉得它在上下文中是多余的,并且可以改进)

    if (x % 3 == 0) {
for (int i = 0; i < objectArray.size(); i+= 3) {
objectArray.get(i).y = FOO_VALUE;
}
} else if (x % 3 == 1) {
if (i % 3 == 0) {
if (i + 7 <= x) {
i += 3;
} else if (i + 2 <= x) {
i += 2;
}
} else if (i % 2 == 0) {
if (i + 2 <= x) {
i += 2;
}
}
} else { // == 2
if (i % 3 == 0) {
if (i + 3 <= x) {
i += 3;
}
} else
i += 2;
}

(我还没有写这些,所以请忍受我的伪代码)

2) 通用文件(可能 O(n) 访问)

  • 获取文件。
  • 从文件中获取第 x 行
  • 相应地设置对象数组。

3)本地静态数据库(我觉得这访问数据相当慢)

  • 获取本地静态数据库的 Dao 对象
  • 发起简单查询
  • 存储结果
  • 相应地设置对象数组

4) HashMap(创建时间可能为 O(n),但访问时间为 O(1)。每次应用启动时都必须实例化)

  • 在应用初始化时设置 HashMap
  • 获取(x)
  • 相应地设置对象数组

最佳答案

这实际上取决于您的使用情况。一般来说,用户的本地电话存储非常昂贵,并且您不希望在其中填充不必要的数据。另一方面,如果您认为您的按钮会被用户频繁按下,那么 HashMap 可能是更好的选择。但是,每次实例化 HashMap 都会影响内存使用情况,具体取决于大小 - 您可以对 HashMap 进行延迟实例化。否则,除非你正在做一些繁重的科学计算,否则每次计算逻辑可能是你最好的选择。

关于java - 每次计算逻辑、访问数据库、文件或 HashMap 是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59297781/

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