我正在编写一些代码来从Java访问Redis,因此我需要创建许多字符串作为键。当然,这些密钥有一个模式,我将重复地为相同的访问重新生成相同的密钥。
我正在考虑为生成的键实现缓存(基于DAO参数),但即使考虑到缓存的速度,我也想知道这样的加速是否值得这样复杂。
密钥由UUID和3-7个字符串连接而成。在这种情况下,StringBuilder是否足够慢,足以保证使用缓存?
发布于 2011-12-06 09:07:21
只有分析才能确定,但如果要缓存这些内容,就必须有某种方法从缓存中获取它们,这可能至少与使用StringBuilder的开销相同。
StringBuilder是在内部使用的,比如
String result = strPart1 + strPart2;
发布于 2011-12-06 09:14:35
就像其他人说的,个人资料。如果UUID是固定的,您可以按如下方式提高速度:
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的工作。它也比缓存简单一点。
https://stackoverflow.com/questions/8394062
复制相似问题