tgoop.com/pyHints/96
Last Update:
بگذریم ازین که اکثریت جوابی نمیدید.
ولی حقیقتش این مثال رو نزدم که همگی بگید تابع total_sum
و برای دلیل هم بگید که :
چون sum
توی Cpython
پیاده سازی شده و بدون اینکه نیازی به ساخت Object
های پایتونی داشته باشه میتونه عملیات ریاضی جمع زدن رو انجام بده و سربار چک کردن نوع Object
و وجود متدهای مورد نیاز و object type
و ... رو نداره (توجه کنید من روی ۳.۸ صحبت میکنم و نه ۳.۱۱ پس همه این موارد به نوعی صادق هست) تازه با C
هم پیاده سازی میشه و سریعتر هست.
که خب خودش جواب خیلی جزئی و درستی هست (همین که بگید توی C
اجرا میشه هم جواب درست رو دادید) و نشون میده درک بالایی از پایتون دارید.
من این مثال رو زدم تا شمارو با پکیج dis
آشنا کنم راجب Profiling
, همین dis
قبلا صحبت کردم (توی کانالهای دیگر) اما لازم بود اینجا هم صحبت کنم؛ Profiling
رو حقیقتش دنبال مثالی هستم که بتونم توی نهایتا ۴ تا پست توضیحش بدم (بگذریم ازش) اما dis
یک مرحله بالاتر هست.
مثال بالا رو فعلا کامل فراموش کنید
توی کار وقتایی پیش میاد که خروجی یک روش از روش دیگری سریعتر هست درحالی که منطق هر ۲ تا تابع یکسان هست
توی این شرایط معمولا کاری که میکنند اینه که
ی timeit
میزنند و اون تابع رو چند ده یا چندصد بار اجرا میکنند مطمئن بشوند بطور میانگین چطوری هست profiling
انجام میدیم که مطمئن بشیم p value
به اندازی هست که نگیم رندم هست این بهبود زمانی و ...
حالا بیاید فرض کنیم که بهبود واقعی هست ولی از نظر منطقی توی هر ۲ مورد یکسان هست توی این شرایط هیچ ابزاری نمیتونه کمک کنه به غیر از dis
برگردیم به مثال قبل و توی پست بعدی ببینیم dis
چیکار میکنه
@PyHints
BY Python Hints

Share with your friend now:
tgoop.com/pyHints/96