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

به نام خدا

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

البته این مقایسه از نظر تولید اعداد رندم هست.

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

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

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

Python (3) :

برای شما
123456789101112131415import 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 هست ) .

1python3 test-speed.py

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

123wait ...
time left 14.401490211486816
up

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

123wait ...
time left 24.84433341026306
up

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

123456789101112131415161718#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) );
  }

و نتیجه :

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

+ البته اینکه پایتون در سادگی و امکانات تفاوت بسیار زیادی با c داره قابل انکار نیست و همچنین زبان c یک زبان کامپایلری هست ولی پایتون یک زبان مفسری ، درضمن من وقتی این کد رو نوشتم اصلا بهینه نبود وگرنه میشه از توابع سریعتر از randint استفاده کرد که سرعت رو بالاتر برد.

نویسنده مطلب: علیرضا آهنی

منبع مطلب

به فکر سرمایه‌گذاری هستی؟

با هر سطحی از دانش در سریع‌ترین زمان با آموزش گام به گام، سرمایه گذاری را تجربه کن. همین الان میتونی با لینک زیر ثبت نام کنی و ۱۰ درصد تخفیف در کارمزد معاملاتی داشته باشی

ثبت نام و دریافت جایزه
ممکن است شما بپسندید
نظر شما درباره این مطلب

آدرس ایمیل شما منتشر نخواهد شد.