프로 그래 밍 언어 EF 속도 테스트 (5): binary - trees
다음은 EF 소스 코드 입 니 다.
//binary-trees
public class < = "liigo">
{
const int minDepth = 4;
public static main()
{
int time = . ();
int n = 16;
int maxDepth = n;
if(minDepth + 2 > n) maxDepth = minDepth + 2;
int stretchDepth = maxDepth + 1;
int check = (TreeNode.bottomUpTree(0,stretchDepth)).itemCheck();
. ("stretch tree of depth ", stretchDepth, "\t check: ", check);
TreeNode longLivedTree = TreeNode.bottomUpTree(0,maxDepth);
for (int depth=minDepth; depth<=maxDepth; depth+=2){
int iterations = 1 << (maxDepth - depth + minDepth);
check = 0;
for (int i=1; i<=iterations; i++){
check += (TreeNode.bottomUpTree(i,depth)).itemCheck();
check += (TreeNode.bottomUpTree(-i,depth)).itemCheck();
}
. ((iterations*2), "\t trees of depth ", depth, "\t check: ", check);
}
. ("long lived tree of depth ", maxDepth, "\t check: ", longLivedTree.itemCheck());
. ("time(ms): ", . () - time);
. ();
}
private class TreeNode
{
private TreeNode left, right;
private int item;
public init(int item){
this.item = item;
}
public static TreeNode bottomUpTree(int item, int depth){
if (depth>0){
return new TreeNode(
bottomUpTree(2*item-1, depth-1)
, bottomUpTree(2*item, depth-1)
, item
);
}
else {
return new TreeNode(item);
}
}
public init(TreeNode left, TreeNode right, int item){
this.left = left;
this.right = right;
this.item = item;
}
public int itemCheck(){
// if necessary deallocate here
if (left==null) return item;
else return item + left.itemCheck() - right.itemCheck();
}
}
}
이 EF 프로그램 은 내 기계 에서 운행 하 는 데 약 108 초가 걸린다.해당 VC6 의 최 적 화 된 운행 시간 은 약 6.9 초 이다.
다른 프로 그래 밍 언어 / 컴 파 일 러 의 표현 은 여 기 를 보십시오. http://shootout.alioth.debian.org/gp4/benchmark.php?test=binarytrees&lang=all
이번 테스트 에 대해 EF 는 경기 시작 이후 최 악의 성적 을 보 였 다. 대부분의 언어 보다 느 리 고 Ruby, PHP, JavaScript, Perl, TCL, Rebol 보다 빠르다.이번 테스트 의 두 가지 특징 은 재 귀 와 대량의 작은 대상 (약 3000 만) 을 만 드 는 것 이다. EF 는 이 두 가지 측면 에서 좋 지 않 은 것 같다.
(이번에 도 VC6 의 활약 이 좋 지 않 았 다.)
아직 많은 테스트 문제 가 있 으 니 시간 이 있 으 면 계속 하 세 요.EF 언어 를 알 고 싶 으 시 면 EF 공식 블 로그 로 오 세 요. http://blog.csdn.net/efdev/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.