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
