首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >StringBuilder是否足够慢,以至于我应该缓存它的结果?

StringBuilder是否足够慢,以至于我应该缓存它的结果?
EN

Stack Overflow用户
提问于 2011-12-06 09:02:58
回答 2查看 446关注 0票数 1

我正在编写一些代码来从Java访问Redis,因此我需要创建许多字符串作为键。当然,这些密钥有一个模式,我将重复地为相同的访问重新生成相同的密钥。

我正在考虑为生成的键实现缓存(基于DAO参数),但即使考虑到缓存的速度,我也想知道这样的加速是否值得这样复杂。

密钥由UUID和3-7个字符串连接而成。在这种情况下,StringBuilder是否足够慢,足以保证使用缓存?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 09:07:21

只有分析才能确定,但如果要缓存这些内容,就必须有某种方法从缓存中获取它们,这可能至少与使用StringBuilder的开销相同。

StringBuilder是在内部使用的,比如

代码语言:javascript
运行
复制
String result = strPart1 + strPart2;
票数 3
EN

Stack Overflow用户

发布于 2011-12-06 09:14:35

就像其他人说的,个人资料。如果UUID是固定的,您可以按如下方式提高速度:

代码语言:javascript
运行
复制
public class KeyGenerator {
    private final StringBuilder sb;
    private final int uidLen;

    public KeyGenerator(String uid) {
        sb = new StringBuilder(uid);
        uidLen = uid.length();
    }

    public String getKey(String suffix) {
        sb.setLength(uidLen);
        sb.append(suffix);
        return sb.toString();
    }
}

这就省去了每次需要密钥时构造新的StringBuilder和附加uid的工作。它也比缓存简单一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8394062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档