|
|
1
13
例子:
产量:
|
|
2
6
答复
我会停止使用那个网站作为学习资源,去找另一个。 |
|
|
3
6
假定
正确答案是:“
a) ,使用任何合适的编译器
“,因为由一个好的编译器创建的代码只执行一个
至于“如何检查”,您有两种可能:
|
|
|
4
1
|
|
5
1
根据变量的类型,as编译器将以不同的方式优化代码。 答案是:如果启用任何优化,则代码对foo的执行完全相同,如果不稳定,则随着寄存器加载次数的增加而存在差异
生成的代码ARM:(这里是x86 verison: https://godbolt.org/g/tSRKxy
|
|
|
6
1
循环有一些开销 代码1中内部循环的开销调用了1000次,而代码2中调用了100次。 因此代码2更快或相同 即使编译器优化得很好并删除了循环,代码2也永远不会变慢 我选择选项e) 证明
编译器根本没有进行优化,因为应用了内部循环的开销,代码2更快。符合选项D)或E) 案例b)
两个代码的结果相同。选项A)或E) b2) 将两个循环合并为一个
b3) 组合对循环进行重新排序(这在原始代码中是一个愚蠢的子优化) 两个代码的结果相同。选项A)或E)
Fabel“反例”无效,因为没有理由在代码1中应用优化,但在代码2中不应用优化 |
|
7
1
该问题缺少任何记录答案的重要信息。 例如,如果我们有以下程序:
如果我们有:
有了像样的编译器和正确的定义,代码几乎完全优化了,所以请回答 a)
编译时使用 Godbolt's compiler explorer ,产生:
c) 在绩效分析中,谦逊是一种基本美德。使用分析工具并仔细编写完整的基准测试代码,以确定优化是否有用。编写复杂代码以试图优化并获取产生错误结果的代码是一个常见错误。 请注意,链接页面中充满了断开的问题。例如Q2:
选项:
代码不编译,如果被纠正,它有一个无限循环,因此没有一个答案是正确的。出于好奇,我们提供了一个正确的函数来计算
在10个问题中,有7个答案不正确,其余3个(Q1、Q4和Q5)是有语法错误的技巧性问题。质量很差的Q&确实是一个网站。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |