首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ApplicationSettingsBase速度慢

ApplicationSettingsBase速度慢
EN

Stack Overflow用户
提问于 2011-03-31 22:53:07
回答 2查看 456关注 0票数 4

当在多线程场景中使用时,应用程序设置机制(源自ApplicationSettingsBase)似乎是一个真正的瓶颈。特别是,当经常查询属性时,它们引入的并发性会减慢我的循环速度。无论如何,我喜欢使用它们来获得那些很好的应用程序配置选项。但是也许我需要把它们包装到我自己的缓存中呢?

有没有人有同样的问题?我是不是遗漏了什么?我想,ApplicationSettingsBase已经缓存了所有设置了吗?为什么它看起来会锁定来自多个线程的访问呢?常见的解决方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 23:44:21

我看不出有什么奇怪的线程安全设置机制?如果这会减慢你的高并发theads,你应该尝试使用局部变量,而不是再次快速查询getsetting。我认为重新设计设置请求机制会对性能有很大帮助。

票数 2
EN

Stack Overflow用户

发布于 2011-12-20 07:23:08

我真的建议将任何类型的“获取设置”功能包装在一个对象中,并将其隐藏在一个接口后面。我们强类型这个,所以我们有:

代码语言:javascript
复制
public class Worker 
{
    private readonly ISettings settings;
    public Worker (ISettings settings)
    {
        this.settings = settings;
    }

    public void Work ()
    {
        for (int i = 0; i < settings.MaxWorkerIterations (); i++)
        { ... }
    }
}

public interface ISettings
{
    int MaxWorkerIterations ();
}

public class AppConfigSettings
{
    public int MaxWorkerIterations ()
    {
        return (int) ApplicationSettings["MaxWorkerIterations"];
    }
}

这具有(主要)编译时检查和易于测试的好处。您还可以覆盖您的AppConfigSettings类,使其成为执行显而易见的操作的CachingAppConfigSettings类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5501801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档