当前位置: 首页 > wzjs >正文

成都企业建网站刷外链

成都企业建网站,刷外链,公司外包做网站赚钱吗,quibids 网站建设文章目录 占位符解析1、原始实现:无缓存解析2、优化实现:缓存解析结果 占位符解析 问题背景:在多数据源切换场景中,environment.resolvePlaceholders(value) 用于解析配置文件中的占位符(如 ${db.master})…

文章目录

  • 占位符解析
    • 1、原始实现:无缓存解析
    • 2、优化实现:缓存解析结果

占位符解析

  • 问题背景:在多数据源切换场景中,environment.resolvePlaceholders(value) 用于解析配置文件中的占位符(如 ${db.master})。如果频繁调用此方法,尤其是在高并发场景下,重复解析相同的占位符字符串会带来不必要的性能开销。通过对比优化前后的实现,验证缓存占位符解析结果对性能的提升。

1、原始实现:无缓存解析

以下代码每次调用时直接解析占位符:

public class OriginalDataSourceResolver {private Environment environment;public String resolve(String dataSourceId) {// 每次调用都解析占位符return environment.resolvePlaceholders(dataSourceId);}
}

性能问题:

  • dataSourceId 是固定值(如 ${db.master})时,每次解析相同字符串,重复计算
  • resolvePlaceholders 内部需遍历 PropertySources,解析嵌套占位符(如 ${db.${env}.url}),存在计算开销

2、优化实现:缓存解析结果

通过 ConcurrentHashMap 缓存已解析的值:

public class OptimizedDataSourceResolver {private Environment environment;private final Map<String, String> cache = new ConcurrentHashMap<>();public String resolve(String dataSourceId) {// 使用缓存避免重复解析return cache.computeIfAbsent(dataSourceId, environment::resolvePlaceholders);}
}

优化关键:

  • 相同 dataSourceId 仅解析一次,后续直接从缓存读取。

性能测试验证:JMH基准测试

测试目标:对比无缓存与有缓存的解析性能

  • 测试数据:
    • 简单占位符:${db.master}
    • 复杂占位符:${db.${env}.url}
  • 并发量:模拟 16 个线程并发调用
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Thread)
@Fork(value = 4)
@Warmup(iterations = 5, time = 5)
@Measurement(iterations = 5, time = 10)
@Threads(16)
public class PlaceholderResolveBenchmark {private OriginalDataSourceResolver originalResolver;private OptimizedDataSourceResolver optimizedResolver;private final String simplePlaceholder = "${db.master}";private final String complexPlaceholder = "${db.${env}.url}";@Setup(Level.Trial)public void setup() {MockEnvironment env = new MockEnvironment();env.setProperty("db.master", "masterDataSource");env.setProperty("env", "prod");env.setProperty("db.prod.url", "jdbc:mysql://localhost:3306/db");originalResolver = new OriginalDataSourceResolver();originalResolver.setEnvironment(env);optimizedResolver = new OptimizedDataSourceResolver();optimizedResolver.setEnvironment(env);}/*** 测试原始解析器-简单占位符* @param bh*/@Benchmarkpublic void testOriginalResolver_Simple(Blackhole bh) {String result = originalResolver.resolve(simplePlaceholder);bh.consume(result);}/*** 测试优化解析器-简单占位符* @param bh*/@Benchmarkpublic void testOptimizedResolver_Simple(Blackhole bh) {String result = optimizedResolver.resolve(simplePlaceholder);bh.consume(result);}/*** 测试原始解析器-复杂占位符* @param bh*/@Benchmarkpublic void testOriginalResolver_Complex(Blackhole bh) {String result = originalResolver.resolve(complexPlaceholder);bh.consume(result);}/*** 测试优化解析器-复杂占位符* @param bh*/@Benchmarkpublic void testOptimizedResolver_Complex(Blackhole bh) {String result = optimizedResolver.resolve(complexPlaceholder);bh.consume(result);}
}

测试结果及分析

  • 测试结果如下:
Benchmark                                                      Mode  Cnt       Score       Error   Units
TT.PlaceholderResolveBenchmark.testOptimizedResolver_Complex  thrpt   20  315340.801 ± 59664.044  ops/ms
TT.PlaceholderResolveBenchmark.testOptimizedResolver_Simple   thrpt   20  332918.070 ± 51588.217  ops/ms
TT.PlaceholderResolveBenchmark.testOriginalResolver_Complex   thrpt   20      18.058 ±     2.609  ops/ms
TT.PlaceholderResolveBenchmark.testOriginalResolver_Simple    thrpt   20      36.011 ±     3.894  ops/ms
  • 结论:

优化后的 OptimizedDataSourceResolver 性能提升显著,吞吐量达到原始方案的 10,000 倍,缓存策略对高频占位符解析场景有非常明显的优化效果。

http://www.dtcms.com/wzjs/4684.html

相关文章:

  • 温州微信网站开发seo数据分析
  • 自适应文章网站模板百度搜索引擎收录入口
  • b2b网站收费项目网站开发是做什么的
  • 音酷网站建设竞价推广代运营企业
  • 武汉网站开发建设初学者做电商怎么入手
  • 成都装修公司网站建设b站2023年免费入口
  • 做刷题网站赚钱么互联网广告行业分析
  • 永康网站建设服务seo排名怎么样
  • 定制化网站建设考研培训机构排名
  • 长沙微信网站制作网络推广培训去哪里好
  • 中国建设银行电话关键词优化计划
  • 做团购网站需要什么资质新产品如何快速推广市场
  • 江门网站制作套餐百度手机助手应用商店下载
  • 建设银行内部网站石家庄新闻网
  • 郑州的兼职网站建设百度网站ip地址
  • 西宁专业网站建设公司网站怎么开发
  • 在哪些网站可以做毕业设计品牌广告图片
  • 广西南宁公司网站制作网络营销的类型有哪些
  • 旅游网站建设总结报告国际时事新闻最新消息
  • 百度百科网站怎么做优化网站的方法有哪些
  • 网站建设图总结公众号seo排名优化
  • 店面设计报价360优化大师旧版
  • 可以做动画的网站四川网站seo
  • 海南网网站优化排名哪家性价比高
  • 网站制作软件小学discuz论坛seo设置
  • 做网站编辑好吗合肥seo排名扣费
  • 在线开发app福州百度关键词优化
  • 网站域名解析ip网络营销师课程
  • 新开的公司怎么做网站外包接单平台
  • 怎样做网站 网页短视频拍摄剪辑培训班