今天我做了一个简单的测试来比较Java和c之间的速度--一个简单的循环,让一个整数“I”从0增加到20亿。
我真的期望C语言比Java更快。我对结果感到惊讶:
Java所用的时间(秒):大约。1.8秒
C:大约用秒表示的时间。3.6秒。
我不认为Java是一种更快的语言,但我也不明白为什么在我的简单程序中循环的速度是c的两倍?
我是不是在计划中犯了重大错误?还是MinGW的编译器配置不好还是怎么的?
public class Jrand {
public static void main (String[] args) {
long startTime = System.currentTimeMillis();
int i;
for (i = 0; i < 2000000000; i++) {
// Do nothing!
}
long endTime = System.currentTimeMillis();
float totalTime = (endTime - startTime);
System.out.println("time: " + totalTime/1000);
}
}
C程序
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main () {
clock_t startTime;
startTime = clock();
int i;
for (i = 0; i <= 2000000000; i++) {
// Do nothing
}
clock_t endTime;
endTime = clock();
float totalTime = endTime - startTime;
printf("%f", totalTime/1000);
return 0;
}
用-o0
以外的任何优化级别(例如-o2
)重新构建C版本,您将发现它在0秒内运行。所以Java版本什么都不做需要1.6秒,C版本什么都不做需要0.0秒(真的,大约0.00005秒)。
问题内容: 我一直认为Python的优势在于代码的可读性和开发速度,但是时间和内存的使用却不如C ++。 这些统计数据让我非常震惊。 您的经验告诉您关于Python与C ++的时间和内存使用情况? 问题答案: 我认为您错误地读取了这些统计信息。他们表明,Python比C ++ 慢 大约400倍,除了一个案例,Python更像是一种内存消耗。不过,就源代码大小而言,Python胜出。 我的Pytho
问题内容: 我做了一个非常简单的基准测试程序,该程序可以使用4种不同的语言计算出高达10,000,000的所有素数。 (2.97秒)-node.js(javascript)(4.4.5) (6.96秒)-c(c99) (6.91秒)-Java(1.7) (45.5秒)-python(2.7) 以上平均每次运行3次,用户时间 Node.js到目前为止运行最快。这使我感到困惑,原因有两个: 在这种情况
因此,我已经阅读了大约半年的关于x86处理器内部发生的事情。所以我决定尝试一下x86程序集的乐趣,只从80386指令开始,以保持它的简单性。(我主要是在学习,而不是优化) 几个月前我做了一个用C语言编写的游戏,所以我去那里用汇编代码从头重写了位图blitting函数。我不明白的是,循环的主要像素绘制主体使用C代码(18条指令)比我的汇编代码(只有7条指令,我几乎100%确定它不会跨越缓存行边界)更
下面是我的测试代码: 产出:
此代码给出输出ELSE 此代码给出的输出是: 虽然两个程序看起来都一样,但为什么输出有差异呢?为什么会这样?
Java: 如果java以微弱优势击败了C和C#我不会感到惊讶,但速度快了20倍?! 文件的格式如下: 另外,我认为值得注意的是,java在NetBeans中运行时大约需要11秒(即使是在“运行”模式下,而不是在“调试”模式下)。 我也尝试编译为C++而不是C,但没有什么不同。 我对C和C#都使用VS2015。 Java: 好吧,我按照建议重新做了测试: 首先,我在C和C#中都使用了类/struc