首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单次循环成本对2次循环成本的影响

单次循环成本对2次循环成本的影响
EN

Stack Overflow用户
提问于 2022-07-31 15:55:50
回答 2查看 42关注 0票数 -3

转换以下循环的成本是多少?

代码语言:javascript
复制
for ( 0 to n) {
    operations of step 1
    operations of step 2
    operations of step 3
}

到下面的2 for循环

代码语言:javascript
复制
for ( 0 to n) {
    operations of step 1
    operations of step 2
}

for (0 to n) {
    operations of step 3
}

考虑到这些操作不是简单的简短陈述。

2循环方法的好处将更容易对程序员和代码困难,在性能/时间成本的权衡是什么?

EN

回答 2

Stack Overflow用户

发布于 2022-07-31 16:06:36

如果您想让代码更具可读性,这是不可能的。如果事情必须在一个循环中完成,那么将它们留在这个循环中。将代码分成两个循环会改变执行顺序。

您可以通过将复杂代码提取到方法来增强可读性。特别是当你选择说话的方法名称时。避免使用ExecuteStep1ExecuteStep2等名称。

代码语言:javascript
复制
for (int i = 0; i < n; i++) {
    var data = ReadData(i);
    var transformed = TransformData(data);
    SaveTransFormedData(i, transformed);
}

在实际代码中,您将用一个具体的术语(如Data )替换泛型Bookings

注意,I/O操作以毫秒为单位,而纯代码操作以纳秒为单位。两者之间有一百万的因素!因此,调用一些额外的方法不会对您造成伤害。

另一个选择是完全避免这个循环,就是将它移到这些方法中,让这些方法接受并返回IEnumerable<T>,并使它们成为扩展方法。然后你可以写:

代码语言:javascript
复制
ReadData().TransformData().SaveTransFormedData();

请参见:

票数 2
EN

Stack Overflow用户

发布于 2022-07-31 16:06:12

在第一个场景中,您可以在每次使用迭代变量进行操作时保留它。在第二个场景中,您需要迭代两次循环。因此,执行操作似乎需要更多的时间。此外,它降低了代码的可读性,因为它可能会混淆为什么相同的循环分开。

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

https://stackoverflow.com/questions/73184770

复制
相关文章

相似问题

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