모듈:타이밍.

Module

모듈 타이밍 개별 기능 @라이센스(CC-BY-SA-3.0) @john Erling Blad <jeblad@gmail.com > 기자  @var 이 모듈이 들어 있는 테이블에서 멤버를 내보냈습니다. 현지의 p = {  ['_count'] = 100,  ['_sets'] = 10, }  각 세트의 항목 수에 대한 액세스 함수 @param number 각 세트의 새 항목 수 @각 세트의 항목 반환 수 기능. p.세어보세요( 번호 )  한다면 번호 그리고나서   주장하다(번호>0, "'num'의 값은\'t는 0이 됩니다.")   p._카운트 = 번호  끝.  돌아가다 p._카운트 끝.  세트 수에 대한 액세스 함수 @param number 새 집합 수 @반품 세트 수 기능. p.놓다( 번호 )  한다면 번호 그리고나서   주장하다(번호>0, "'set'의 값은\'t는 0이 됩니다.")   p._세트 = 번호  끝.  돌아가다 p._세트 끝.  시계열에 대한 통계량 계산 및 평균 및 분산 이 계산에 대한 배경 정보는 [w:en:average] 및 [w:en:en:average]를 참조하십시오.표준 편차] @parameterable timing은 일련의 시간 차이입니다. @평균 및 분산의 반환 표 기능. p.통계학( 타이밍. )  현지의 minVal = 타이밍.[1]  현지의 maxVal = 타이밍.[1]  현지의 sqr,의미하다=0,0  위해서 i,v  짝을 짓다(타이밍.) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   minVal = v < minVal 그리고. v 또는 minVal   maxVal = v > maxVal 그리고. v 또는 maxVal   의미하다 = v + 의미하다   sqr = 수학.pow(v,2) + sqr  끝.  의미하다 = 의미하다 / #타이밍.  현지의 넝쿨 = (sqr / #타이밍.) - 수학.pow(의미하다,2)  돌아가다 { 의미하다, 넝쿨, minVal, maxVal } 끝.  각 반복 청크에 대해 시간을 들이면서 제공된 함수를 반복하는 러너 반복의 커널인 @param 함수 함수 func @지정된 함수에 대한 런타임 테이블 반환 기능. p.달리기 선수(펑크, ...)  함수를 측정합니다.  현지의 시간을 = {}  위해서 i=1,p._세트 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   시간을[i] = os.clock()   위해서 j=1,p._카운트 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    펑크(...)   끝.   시간을[i] = os.clock() - 시간을[i]  끝.    주장하다(#시간을>0, "시간 측정 항목 없음")    돌아가다 시간을 끝.  치수를 조합하여 새로운 형태로 만듭니다. 이 계산에 대한 배경 정보는 w:en:정규 분포 랜덤 변수의 합] @기준에 대한 매개 변수 눈금 통계 @관측된 함수에 대한 매개 변수 택 통계 @결합된 통계가 있는 반환 표, 분산에서 표준 편차로 이동 기능. p.결합하다(똑딱이, 압정을)  기준선의 실제 측정값 조정  돌아가다 { 압정을[1] - 똑딱이[1], 수학.pow(압정을[2] + 똑딱이[2], 0.5), 똑딱이[3], 똑딱이[4] } 끝.  주자가 만든 결과에 대한 형식 @평균 및 표준 편차로서의 모수적 타이밍 @결과를 설명하는 반환 문자열 기능. p.신고( 타이밍. )  현지의 메시지 = {}  메시지['호출 결과'] = 각각의 통화는 약 1달러 동안 실행되었습니다.\n'  메시지['결과 확인'] = '\t각 세트의 평균 런타임은 $1초였습니다.\n\t$2초의 표준 편차로,\n\t최소 3달러, 최대 4달러.\n'  메시지['결과 확인'] = '\t총 소요 시간은 약 1달러였습니다.\n'  메시지['부하 결과'] = '상대 부하는 1달러로 추정됩니다.'\n'    현지의 기능. g( 열쇠, ...)   현지의 메시지 = mw.메세지.신규( '1987-' .. 열쇠 )   한다면 메시지:is Blank() 그리고나서    메시지 = mw.메세지.새 원시 메시지( 메시지[열쇠] )   끝.   돌아가다 메시지  끝.    현지의 기능. f(형식 문자열, 숫자들)   현지의 정형화된 = {}   위해서 _,v  짝을 짓다(숫자들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    정형화된[1+#정형화된] = string.형식( 형식 문자열, v )   끝.   돌아가다 정형화된  끝.    현지의 줄들 = {   g('호출 결과'):numParams(짐을 풀다(f('.1e', 타이밍.[1]))):평지(),   g('결과 확인'):numParams(짐을 풀다(f('.1e', 타이밍.[2]))):평지(),   g('결과 확인'):numParams(짐을 풀다(f('.1e', 타이밍.[3]))):평지(),   g('부하 결과'):numParams(짐을 풀다(f('%.1f', 타이밍.[4]))):평지()  }  돌아가다 테이블.콘캣(줄들, '') 끝.  기준 측정에 사용되는 더미 함수 @리턴 제로 기능. p.절대로()  돌아가다 영의 끝.  수출에 적합한 현지의 mt = {  runner인 것처럼 인수가 있는 테이블의 호출 형식 »  @반복의 커널인 paramfunction func  @결과를 설명하는 반환 문자열  __통화 = 기능. (자신, 펑크, ...)   같은 수준으로 결심함   현지의 f1 = p.절대로   현지의 f2 = 펑크      시계를 맞추다   현지의 똑딱이 = os.clock()     현지의 베이스라인 = 자신.통계학( 자신.달리기 선수(f1, ...) )   현지의 실제. = 자신.통계학( 자신.달리기 선수(f2, ...) )      현지의 합쳐진 = 자신.결합하다(베이스라인, 실제.)   현지의 압정을 = os.clock()   돌아가다 자신.신고({{ 합쳐진[1] / p._카운트 }, 합쳐진, { 압정을 - 똑딱이 }, {실제.[1]/베이스라인[1]}})  끝. }  메타테이블을 설치합니다. 상을 차리다(p, mt)  완성된 돌아가다 p