python, java, c, go 실행 속도 비교

2371 단어
한가 로 이 무사 합 니 다. 저 는 자바, c, python, go 의 연산 속 도 를 비교 하 였 습 니 다. 실행 하 는 기준 코드 는:
python 버 전
NUM = 111181111   #     ,             

def is_prime(n):
    i = 2
    while i < n:
        if n % i == 0:
            return False
        i += 1
    return True



if __name__ == '__main__':
    is_prime(NUM)

테스트 방식 은 Liux 의 time 명령 을 사용 하고 시간 은 totalk 통 계 를 통일 하 는 것 입 니 다. 예 를 들 어 go 언어 실행 시간 을 통계 하 는 명령 은 다음 과 같 습 니 다.
➜  Desktop time ./speed
./speed  1.01s user 0.02s system 97% cpu 1.048 total

통계 자바 는 다음 과 같 습 니 다:
➜  src git:(master) ✗ time java eg.Speed
java eg.Speed  1.14s user 0.05s system 95% cpu 1.256 total

최종 결 과 는 다음 과 같다.
언어.
실행 시간 (총) 초
python 2.7.13
11.256
python 3.7.0
11.462
java 1.8.0_121 HotSpot
1.256
c (Apple LLVM version 10.0.0)
1.069
go 1.8.1
1.048
결론.
go 와 c 가 가장 빠 르 고 자바 가 약간 느 리 며 python 2 와 python 3 의 속 도 는 많 지 않 지만 앞의 세 가지 언어 보다 10 배 느 립 니 다.이 유 는 저도 알 아 봤 습 니 다. 쉽게 말 하면 2 시: 1. Python 등 동적 유형 언어 는 모든 간단 한 조작 을 수행 할 때 대량의 명령 이 있어 야 완성 할 수 있 습 니 다 (유형 판단 을 하고 유형 별로 각자 의 방법 을 찾 아 서로 다른 명령 을 수행 하 는 것 을 포함 합 니 다).2. C 언어 와 Python 의 데이터 구조 와 알고리즘 이 다르다.
또 청 남 안 리 는 rust 를 사용 하 는 것 이 더 빠 를 것 이 라 고 말 했다. rust 를 써 본 적 이 없 기 때문에 실험 하지 않 겠 다 고 말 했다.
기타 몇 가지 코드 의 버 전 은 다음 과 같다.
자바 버 전
package eg;

public class Speed {
    static final long NUM = 111181111L;

    public boolean isPrime(long n) {
        long i = 2L;
        while (i < n) {
            if (n % i == 0) {
                return false;
            }
            i += 1;
        }
        return true;
    }


    public static void main(String[] args) {
        Speed s = new Speed();
        s.isPrime(NUM);
    }
}

c 버 전
int is_prime(long n) {
    long i = 2L;
    while (i < n) {
        if (n % i == 0) {
            return 0;
        }
        i += 1;
    }
    return 1;
}

int main() {
    const long NUM = 111181111L;
    is_prime(NUM);
}

go 버 전
package main

func is_prime(n int) bool {
    /*        */
    var i = 2
 
    for i < n {
        if n % i == 0 { 
            return false
        }
        i++
    }
    return true
}

func main() {
    const NUM int = 111181111
    is_prime(NUM)
}

좋은 웹페이지 즐겨찾기