我正在重构我的应用程序以使其更快。我正在寻找关于这方面的技巧,并发现了以下声明:
"ForEach可以简化For循环中的代码,但它是一个沉重的对象,比使用For编写的循环慢。"
这是真的吗?如果这是在编写时是真的,今天还是这样吗?或者foreach本身已经进行了重构以提高性能?
我对来自同一来源的以下提示也有同样的问题:
"在可能的情况下,使用数组而不是集合。数组通常更有效率,特别是对于值类型。此外,在可能的情况下初始化集合到所需的大小。"
更新
我正在寻找性能技巧,因为我的数据库操作需要几秒钟的时间。
我发现"using"语句会占用大量时间。
通过反转for循环和"using"(当然,需要进行重构才能使其正常工作),我完全解决了我的性能问题。
原本速度极慢的代码如下:
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();
. . .