gpt4 book ai didi

c# - 增强本地化性能? (ComponentResourceManager.ApplyResources)

转载 作者:行者123 更新时间:2023-11-30 15:48:27 24 4
gpt4 key购买 nike

在我的客户端遇到一些性能问题后,我们决定尝试使用一些性能分析器来找出瓶颈或识别代码中有问题的部分。当然,正如许多性能调查一样,问题来自各种各样的事情,但我发现我的用户控件的 ComponentResourceManager.ApplyResources 在构建表单时花费了太多时间:更多超过 24% 的构造时间花费在 InitializeComponent() 内的 ApplyResources 中。对于仅“查找资源字符串并将其放入其容器”而言,这似乎相当多。

ComponentResourceManager.ApplyResources 到底做了什么?我想不仅仅是搜索字符串,如果不是,也不会花那么长时间。

有没有办法提高本地化的性能?我们的软件已本地化为多种语言,因此我们确实需要保留这种多语言功能。

关于这个问题有什么建议吗?

谢谢!

PS:我们使用 C#、.NET 3.5 SP1 进行编码。

最佳答案

ApplyResources 方法使用反射来查找将使用资源值更新的属性:


property = value.GetType().GetProperty(name, bindingAttr);

反射是出了名的慢。手动将资源值分配给属性(例如使用 ResourceManager.GetString(...))。这对编码来说很乏味,但应该会提高性能。

关于c# - 增强本地化性能? (ComponentResourceManager.ApplyResources),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com