آیا استفاده از Function Pointer بهینه است؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

آیا استفاده از Function Pointer بهینه است؟

+2 امتیاز
سلام. تشکر از سایت خوبتون.

آیا اگر در core کد از function pointer استفاده کنیم یعنی توابعی که به کرات فراخوانی میشن آیا همچین کاربردی درسته یا نه؟
سوال شده مرداد 30, 1393  بوسیله ی OptiMan (امتیاز 124)   2 9 16
دوباره تگ گذاری شد شهریور 2, 1393 بوسیله ی BlueBlade
بهتر نیست یه مثال بیارید؟

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
سلام .

در صدا زدن تابع به صورت غیر مستقیم (Function Pointer ) ، باید اشاره گر Dereference بشه و مقدارش ( یعنی آدرس تابع )  بدست بیاد و

بعد تابع صدا زده بشه . که اگه یک Cache-Miss هم رخ بده که بدتر میشه .

در صدا زدن تابع به صورت مستقیم ، آدرس تابع مشخصه ، و نیازی به بدست آوردن آدرس تابع نیست .

آنچنان Overheadی قابل توجهی ندارن .

ولی توی Core بهتره از همون صدا زدن مستقیم استفاده کنید . اگر بتونید که دیگه نیازی به Function Pointer ندارید .
پاسخ داده شده شهریور 1, 1393 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد شهریور 2, 1393 بوسیله ی OptiMan
...