Nim خواناتر از python سریعتر از c

عنوان صرفا جنبه ی تبلیغاتی دارد :smile:


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


نظر شما درباره ی این زبان چیه؟
7 Likes

تست کردم جالب بود گفتم به اشتراک بذارم شما هم تست کنید :
`

------------------------------------

python

cpu usage : 26%

time { python test.py; }

Code :

for i in range(1,1000000):
print(i)

1

real 0m9.096s
user 0m4.205s
sys 0m4.704s

2

real 0m9.292s
user 0m4.115s
sys 0m5.175s

3

real 0m9.314s
user 0m4.136s
sys 0m5.167s

4

real 0m9.739s
user 0m4.343s
sys 0m5.394s

------------------------------------

c

cpu usage : 19%

time { gcc test.c; ./a.out; }

Code :

#include <stdio.h>

int main()
{
for (float i = 1; i < 1000000; ++i) {
printf("%f\n" , i);
}
return 0;
}

1

real 0m6.223s
user 0m1.176s
sys 0m3.247s

2

real 0m6.405s
user 0m1.176s
sys 0m3.472s

3

real 0m6.347s
user 0m1.234s
sys 0m3.374s

4

real 0m6.316s
user 0m1.199s
sys 0m3.321s

------------------------------------

c++

cpu usage : 26%

time { g++ test.cpp; ./a.out; }

Code :

#include
using namespace std;
int main()
{
for (float i = 1; i < 1000000; ++i) {
cout << i << endl;
}
}

1

real 0m7.472s
user 0m2.936s
sys 0m4.498s

2

real 0m7.729s
user 0m3.080s
sys 0m4.624s

3

real 0m6.982s
user 0m2.786s
sys 0m4.171s

4

real 0m8.236s
user 0m3.441s
sys 0m4.790s

------------------------------------

nim

cpu usage: 22%

nim compile --run test.nim

Code :

for i in countup(1, 1000000):
echo i

1

real 0m4.814s
user 0m1.246s
sys 0m2.895s

2

real 0m4.843s
user 0m1.207s
sys 0m3.024s

3

real 0m4.812s
user 0m1.093s
sys 0m3.015s

4

real 0m4.901s
user 0m1.284s
sys 0m3.036s

------------------------------------

`
این سایت خود زبانه :

نصبشم توی زوبونتو خیلی اسون بود
sudo apt install nim
توی ارچ و… هم به همین روال باید باشه دیگه تست کنید . راستی قسمت learn سایت هم ببینید و مثال هاشم دیدم خیلی باحال و ساده توضیح داده بود !


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

4 Likes

متاسفانه الآن وضعیت جوریه که مهم نیست یه زبان چه قدر قویه یا ویژگی های مثبت داره، مهم اینه که چه قدر community قوی ای داره و چه قدر ابزار های به درد بخور براش نوشتن

4 Likes

بله درسته . اما باید به زبان های خوب هم فرصت داد حداقل توی زمان های خالی .

2 Likes

Nim was created to be a language as fast as C, as expressive as Python, and as extensible as Lisp

خیلی ازش خوشم اومده

یه مساله‌ای اینجا هست. شما print رو تست کردید. پرینت، یک system call هست و io محسوب میشه.
خیلی بنچ‌مارک خوبی به حساب نمیاد. بهتر بود یه چیزی رو تست میکردید که side effect نداشته باشه و یه پردازشی باشه که داخل خود تابع انجام میشه و چیزی بهش وارد یا خارج نمیشه.
یه نمونه بنچ‌مارک خوب که سراغ دارم اینه:
https://benchmarksgame-team.pages.debian.net/benchmarksgame
سورس‌کدها هم اینجا هستن برای مشاهده!

یه بنچ‌مارک خوب که البته فقط فریمورکها (و لایبرریها و…)ی وب رو تست کرده هم اینه:

که سورس‌کدهاش هم قابل مشاهده (و contribute) هست. یه وقتایی میرم یه کم از کدهاش رو میخونم برای دیدن best practiceهای هر لایبرری (یه سری سورس توی ریپازیتوری هست که هنوز توی وبسایت نذاشتن)
درکل چیز به‌دردبخوریه.

5 Likes

بله درست میفرمایید توجه نکرده بودم به این مورد ! :wink:

1 Likes

جالبه. فقط تایم کامپایل رو به نظرم باید صرف نظر میکردید. به نظرم میاد که این کارو نکردید.