我正在重构我的应用程序以使其更快。我正在寻找这样做的提示,并找到了以下声明:
“ForEach 可以简化 For 循环中的代码,但它是一个沉重的对象,并且比使用 For 编写的循环慢。”
真的吗?如果它在写的时候是真的,那么今天仍然是真的,还是 foreach 本身已经被重构以提高性能?
我对来自同一来源的这个提示有同样的问题:
“在可能的情况下使用数组而不是集合。数组通常更有效,尤其是对于值类型。此外,尽可能将集合初始化为所需的大小。”
更新
我正在寻找性能提示,因为我有一个数据库操作需要几秒钟。
我发现“使用”语句很耗时。
我通过反转 for 循环和“使用”完全解决了我的性能问题(当然,重构是必要的)。
比糖蜜慢的代码是:
for (int i = 1; i <= googlePlex; i++) {
. . .
using (OracleCommand ocmd = new OracleCommand(insert, oc)) {
. . .
InsertRecord();
. . .
比超速子弹还快的代码是:
using (OracleCommand ocmd = new OracleCommand(insert, oc)) {
for (int i = 1; i <= googlePlex; i++) {
. . .
InsertRecord();
. . .