تست سرعت پایتون (:

به نام خدا

امروز میخواستم یه تست کنم ببینم که پایتون که تازه شروع کردم توی محاسبات خفن چقدر زمان طی میکنه ؟

برنامه که می خواستم بنویسم این بود .

برنامه ای بنویسید که ۱۰ میلیون بار پرتاب سکه را به صورت تصادفی حساب کند و مدت زمان طول کشیدن عملیات را در خروجی چاپ کند

خوب اینم کد ها :

Python (3) :

import time
import random
a = time.time()
i = 10000000
print("wait ...")
while i >= 0:
    n = random.randint(1, 2)
    i-=1
d = time.time()
c = d - a
print("time left",c)
if n == 1:
    print("up")
if n == 2:
    print("down")

و اون رو اجرا میکنیم ( فرض میکنیم که شما از گنو/لینوکس استفاده میکنید و اسم فایلمون test-speed.py هست ) .

python3 test-speed.py

و خروجی ( cpu ۴ هسته ای و رم ۴ گیگ در دبیان ۹ تستینگ با میزکار xfce ) :

wait ...
time left 14.401490211486816
up

حالا چطوره این کارو با ۱۶ میلیون بار انجام بدیم ؟

wait ...
time left 24.84433341026306
up

و حالا بهتره با زبان C تست کنیم ( البته با پرتاب یک میلیارد بار ! )

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 int i,n;
 int main(void)
 {
 time_t rawtime;
 struct tm * timeinfo;
 time ( &rawtime );
 timeinfo = localtime ( &rawtime );
 printf ( "time start: %s", asctime (timeinfo) );
 for(i=0;i<1000000000;i++){
 n=1+rand()%2;
 }
 time ( &rawtime );
 timeinfo = localtime ( &rawtime );
 printf ( "time end: %s", asctime (timeinfo) );
  }

و نتیجه :

time start: Thu Dec 20 11:10:10 2018
time end: Thu Dec 20 11:10:18 2018