小编Tur*_*rac的帖子

Java String.intern() 使用 HashTable 而不是 ConcurrentHashMap

我正在研究 String.intern() ,这种方法有性能损失。我将 String.intern() 与 ConcurrentHashMap.putIfAbsent(s,s) 与 Microbenchmark 进行了比较。使用Java1.8.0_212,Ubuntu 18.04.2 LTS

\n\n
@Param({"1", "100", "10000", "1000000"})\nprivate int size;\n\nprivate StringIntern stringIntern;\nprivate ConcurrentHashMapIntern concurrentHashMapIntern;\n\n@Setup\npublic void setup(){\n    stringIntern = new StringIntern();\n    concurrentHashMapIntern = new ConcurrentHashMapIntern();\n}\npublic static class StringIntern{\n    public String intern(String s){\n        return s.intern();\n    }\n}\npublic static class ConcurrentHashMapIntern{\n    private final Map<String, String> map;\n\n    public ConcurrentHashMapIntern(){\n        map= new ConcurrentHashMap<>();\n    }\n    public String intern(String s){\n        String existString = map.putIfAbsent(s, s);\n        return (existString == null) ? s : existString;\n    }\n}\n\n@Benchmark\npublic void intern(Blackhole blackhole){\n    for(int count =0; …
Run Code Online (Sandbox Code Playgroud)

java concurrency performance

1
推荐指数
1
解决办法
570
查看次数

标签 统计

concurrency ×1

java ×1

performance ×1