问题标签 [performance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
6603 浏览

c# - ConfigurationManager.AppSettings 性能问题

我计划将我所有的配置设置存储在我的应用程序的 app.config 部分(使用ConfigurationManager.AppSettings类)。当用户使用应用程序的 UI 更改设置时(单击复选框、选择单选按钮等),我计划将这些更改写入AppSettings. 同时,当程序运行时,我计划AppSettings从一个不断处理数据的进程中不断访问。通过 UI 更改设置需要实时影响数据处理,这就是为什么进程会AppSettings不断访问的原因。

就性能而言,这是一个好主意吗?在编写 .Net 应用程序时,使用AppSettings应该是存储和访问配置设置的“正确方法”,但我担心这种方法不适合持续加载(至少在不断读取的设置方面)。

如果有人有这方面的经验,我将不胜感激。

更新:我可能应该澄清几点。

这不是一个 Web 应用程序,因此将数据库连接到应用程序可能只是为了存储配置设置而过度使用。这是一个 Windows 窗体应用程序。

根据 MSDN 文档,ConfigurationManager它不仅用于存储应用程序级别设置,还用于存储用户设置。(例如,如果应用程序作为部分信任应用程序安装,则尤其重要。)

更新 2:我接受了 lomaxx 的回答,因为Properties它确实看起来是一个不错的解决方案,而无需向我的应用程序(例如数据库)添加任何额外的层。使用属性时,它已经完成了其他人建议的所有缓存。这意味着任何更改和后续读取都在内存中完成,因此速度非常快。属性仅在您明确告知时才将更改写入磁盘。这意味着我可以在运行时即时更改配置设置,然后仅在程序退出时才最终保存到磁盘。

为了验证它确实能够处理我需要的负载,我在笔记本电脑上进行了一些测试,并且能够使用 Properties 每秒进行 750,000 次读取和 7,500 次写入。这远远超出了我的应用程序甚至接近需要的东西,我觉得在不影响性能的情况下使用属性非常安全

0 投票
1 回答
7989 浏览

c# - DataTable 循环性能比较

以下哪项表现最好?

我已经看到在 JavaScript 中实现的方法 2 具有巨大的性能提升,但是,我无法衡量 C# 中的任何收益,并且想知道编译器是否已经执行方法 2,即使像方法 1 那样编写也是如此。

方法 2 背后的理论是代码不必在每次迭代时访问 DataTable.Rows.Count,它可以简单地访问 int c。

方法一

方法二

0 投票
2 回答
3171 浏览

c# - CSharpCodeProvider 编译性能

CompileAssemblyFromDom比CompileAssemblyFromSource快

应该是因为它可能绕过了编译器前端。

0 投票
2 回答
1709 浏览

sql-server - 使用 LINQ 时有多少数据库性能开销?

与使用大多数低级 C 加载的自定义优化查询相比,使用 C# 和 LINQ 涉及多少数据库性能开销,两者都具有 SQL Server 2008 后端?

我在这里特别考虑了这样一种情况,即您有一个相当数据密集型程序,并且每个屏幕将至少进行一次数据刷新或更新,并且将同时拥有 50-100 个用户。

0 投票
4 回答
1924 浏览

.net - .NET 远程处理速度和 VPN

我正在开发一个使用 .NET Remoting 在客户端应用程序和对象服务器之间进行通信的项目。对于开发,客户端、服务器和 MSSQL 数据库都在我的本地开发机器上运行。

当我在办公室工作时,响应能力还不错。

但是,当我在家工作时,速度明显变慢。如果我断开与 VPN 的连接,它会加速(我相信,但也许这只是一厢情愿)。如果我完全关闭我的无线连接,它会立即加速到全油门。

我的假设是,远程流量正在通过某个点进行路由,这会减慢所有速度,尽管是我的家庭路由器和/或 VPN。

有没有人知道如何强制远程流量保持完全本地化?

0 投票
6 回答
1550 浏览

performance - 更快地查找受时间限制的重复项

在一台装有 AIX 的机器上,PERL如果它们具有相同的 id 并且如果它们在四个小时内注册,则我需要过滤将被视为重复的记录。

我使用这个过滤器实现了这个过滤器AWK并且工作得很好,但我需要一个更快的解决方案:

0 投票
12 回答
69531 浏览

c# - String.Format 是否与 StringBuilder 一样高效

假设我在 C# 中有一个 stringbuilder 执行此操作:

这是否会像拥有以下内容一样有效或更有效:

如果是这样,为什么?

编辑

在一些有趣的答案之后,我意识到我可能应该更清楚我所问的问题。我并没有太多要求哪个在连接字符串时更快,但在一个字符串注入另一个字符串时哪个更快。

在上述两种情况下,我都想将一个或多个字符串注入到预定义模板字符串的中间。

对困惑感到抱歉

0 投票
8 回答
1508 浏览

performance - 在多核机器上扩展多线程应用程序

我正在做一个项目,我们需要更多的性能。随着时间的推移,我们继续改进设计以更多地并行工作(线程和分布式)。然后最新的步骤是将其中的一部分移到具有 16 个内核的新机器上。我发现我们需要重新考虑如何在共享内存模型中扩展至那么多内核。例如,标准内存分配器不够好。

人们会推荐什么资源?

到目前为止,我发现 Sutter 的专栏 Dr. Dobbs 是一个好的开始。我刚拿到多处理器编程的艺术和关于英特尔线程构建块的 O'Reilly 书

0 投票
8 回答
2074 浏览

.net - 抛出异常的性能注意事项

我多次遇到以下类型的代码,我想知道这是否是一种好的做法(从性能的角度来看):

基本上,编码人员所做的是他们将异常包含在自定义异常中并再次抛出该异常。

这在性能上与以下两个有何不同:

或者

抛开任何功能或编码最佳实践论点,这 3 种方法之间是否存在性能差异?

0 投票
2 回答
1725 浏览

performance - 有人用过谷歌性能工具吗?

寻找有关以下方面的反馈:

http://code.google.com/p/google-perftools/wiki/GooglePerformanceTools