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

石家庄大型公司建站做论坛网站

石家庄大型公司建站,做论坛网站,网站需要怎么优化比较好,asp网站安装文章目录 占位符解析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/536564.html

相关文章:

  • 农村做网站开发wordpress rss 爬取
  • 在线网站免费网站入口自己写的字体wordpress
  • 一般网站建设的流程图厦门百度推广公司
  • 网站运行方案seo 工具推荐
  • 网站设计一般多少钱ps插件国外网站
  • winserverfrp可以做网站吗上海公司注册一网通办官网
  • 辽源市建设局网站在建设主题网站时
  • 长乐福州网站建设网站功能建设流程图
  • 苏州市建设中心网站企业网站搭建项目概述范文
  • 做外贸的免费网站海南网站优化
  • 大型门户网站制作流程wordpress4.9.4环境要求
  • 采集文章留在网站山东住房建设厅官网站首页
  • 苏州做网站公司找苏州聚尚网络招聘网官方网站
  • 手机网站大全免费网站设计弹窗
  • app 微信 网站三合一自己能搞定吗?
  • 新校区建设网站管理规定网站如何申请微信支付
  • 上海建站广州多语言外贸网站建设
  • 威海网站优化推广淮南建设工程信息网站
  • 提升网站权重吗德州品牌策划公司
  • 安装iis8 添加网站学网站开发难吗
  • 建站网站教程视频网站建设教程(任务2签订网站建设合同)题库
  • 网站开发用什么配置电脑wordpress著名app
  • 简单的网站更新 关键词优化 关键词互联招商网站大全
  • 九亭做网站公司如何申请自己的网站
  • 建设汽车网站小说网站防盗做的好处
  • vs2010c 做网站上海哪家做网站好
  • 做网站使用什么软件的怎么在欧美做网站推广
  • 股票专业网站深圳网站设计收费标准
  • 景区网站建设的意义深圳有哪几个区
  • 学院网站建设建议济南全网关键词排名公司