为什么MOD操作比multiplication一个多一点多贵factor of 2?请更具体地说明CPU如何执行除法运算并返回MOD运算的结果.
在以下示例中,每个线程运行一秒钟.测试在SPARC处理器上进行.
// multiplication
void someThread() {
int a = 10234;
while (true) {
opers++;
a = a * a;
a++;
}
// opers ~ 26 * 10^6 in a sec.
}
// MOD
void someThread() {
int a = 10234;
while (true) {
opers++;
a = a % 10000007;
a++;
}
// opers ~ 12 * 10^6 in a sec.
}
Run Code Online (Sandbox Code Playgroud)