python, java, c, 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)
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.