博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Windows服务修改配置文件后必须重启的问题
阅读量:5917 次
发布时间:2019-06-19

本文共 1129 字,大约阅读时间需要 3 分钟。

 
原文地址:
 
解决方法:读取配置文件前先刷新文件
// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationManager.RefreshSection("appSettings");
recordCount = Math.Abs(int.Parse(ConfigurationManager.AppSettings["RecordCount"]));
 
分析:.Net读取配置文件一般是从缓存中读取,修改配置文件后并不能影响缓存中的值,而读取前刷新文件,.Net会从硬盘文件中读取而不是从缓存中读取配置文件值
 
 
性能比较:
前置条件:app.config中有六个配置项
 
调用RefreshSection 后读取10000次:
var sw = new Stopwatch();
sw.Start();
 
for (int i = 0; i < 10000; i++)
{
ConfigurationManager.RefreshSection("appSettings");
object value = ConfigurationManager.AppSettings["RedisServer"];
}
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:时 {1:00}:分 {2:00}:秒:{3:00}:毫秒",
 ts.Hours, ts.Minutes, ts.Seconds,
 ts.Milliseconds / 10);
//00:时 00:分 07:秒:43:毫秒
string kk = elapsedTime;
 
不调用RefreshSection 后读取10000次:
var sw = new Stopwatch();
sw.Start();
 
for (int i = 0; i < 10000; i++)
{
object value = ConfigurationManager.AppSettings["RedisServer"];
}
 
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:时 {1:00}:分 {2:00}:秒:{3:00}:毫秒",
 ts.Hours, ts.Minutes, ts.Seconds,
 ts.Milliseconds / 10);
//00:时 00:分 00:秒:01:毫秒
string kk = elapsedTime;
 
 
结论:
使用RefreshSection先刷新文件在读取对性能影响还是很大的

 

转载地址:http://lbfvx.baihongyu.com/

你可能感兴趣的文章
拦截器
查看>>
go-xorm使用外键报错(Cannot add or update a child row: a foreign key constraint fails)
查看>>
HttpServlet请求响应过程(继承HttpServlet类的Servlet,Tomcat容器)
查看>>
为什么防火墙不能保护网络免受ddos攻击
查看>>
认识CoreData - 基础使用
查看>>
深入理解Solidity之源文件及合约结构——Solidity中文文档(4)
查看>>
拥抱大健康,瞄准第一股
查看>>
pyhanlp 停用词与用户自定义词典功能详解
查看>>
比特币交易费用创新低的背后:交易量下降了68%
查看>>
前端自动化构建工具webpack简单入门——2
查看>>
MySQL面试题--常见的四种隔离级别
查看>>
企业级 SpringBoot 教程 (一)构建第一个SpringBoot工程
查看>>
玩转大数据系列之一:数据采集与同步
查看>>
hikari druid c3p0 dbcp jdbc对比
查看>>
interview questions
查看>>
SpringMVC的执行流程
查看>>
定位、读取手机状态等权限在6.0系统不管用
查看>>
FTP服务器开发
查看>>
CDN WAF功能开放公测 提升网络应用安全性能
查看>>
vivo Y51的USB调试模式在哪里,开启vivo Y51USB调试模式的教程
查看>>