相关疑难解决方法(0)

静态链接与动态链接

在某些情况下,是否有任何令人信服的性能原因选择静态链接而不是动态链接?我已经听过或读过以下内容,但我对这个问题的了解不足以保证它的真实性.

1)静态链接和动态链接之间的运行时性能差异通常可以忽略不计.

2)(1)如果使用使用配置文件数据优化程序热路径的配置文件编译器,则不成立,因为使用静态链接,编译器可以优化代码和库代码.通过动态链接,您的代码可以进行优化.如果大部分时间都花在运行库代码上,那么这可能会产生很大的不同.否则,(1)仍然适用.

c c++ performance dynamic-linking static-linking

382
推荐指数
14
解决办法
22万
查看次数

Java比C快

今天我做了一个简单的测试来比较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);
 }

}
Run Code Online (Sandbox Code Playgroud)

C程序

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main () {

    clock_t startTime;
    startTime = clock();

    int i;
    for (i = 0; …
Run Code Online (Sandbox Code Playgroud)

c java performance

7
推荐指数
2
解决办法
5070
查看次数

Java比C快吗?

到目前为止我所听到的一切都是人们说Java通常比C慢,但有一些例外(比如涉及代码什么都不做).所以我出去测试它.我在0到999,999之间有一个100,000个整数的数组.我在C和java(在OS X上编译)中使用了一个双循环来将它们从最小到最大排序.

结果是Java通常在一半时间内完成.在使用不同阵列的5次运行中,Java占用大约17秒,而C占用大约32秒(包括从文件中分配和填充阵列的时间,两者都可以忽略不计).

那么什么会使Java代码比C运行得更快?是否有我遗漏的东西,或者我听不到的一些基础技术?

编辑:也不确定它是否重要,但我使用time命令计时,而不是任何自定义代码.例如:$time java SortArray

至于编译器选项,我现在无法访问该命令行,但它是OS X 10.10上的默认gcc选项:

gcc sortarray.c -o sortarray

我只是使用默认的javac来编译Java.

javac SortArray.java

C:

#include <stdio.h>
#include <stdlib.h>

#define SIZE 32

int main()
{
    FILE* file = fopen("bigarray.txt", "r");
    int arraySize = 100000;
    int array[100000] = {};
    int i, j, temp;
    char inputBuffer[SIZE];
    for (i = 0; i < arraySize; i++) {
        fgets(inputBuffer, SIZE, file);
        array[i] = strtod(inputBuffer, NULL);
    }

    for (i = 0; i < arraySize; i++)
        for (j = i + 1; j …
Run Code Online (Sandbox Code Playgroud)

c java arrays sorting performance

-5
推荐指数
1
解决办法
2331
查看次数

标签 统计

c ×3

performance ×3

java ×2

arrays ×1

c++ ×1

dynamic-linking ×1

sorting ×1

static-linking ×1