تور لحظه آخری
امروز : دوشنبه ، 28 آبان 1403    احادیث و روایات:  حضرت زهرا (س):از دنیای شما سه چیز محبوب من است: 1- تلاوت قرآن 2- نگاه به چهره ...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

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

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

 






آمار وبسایت

 تعداد کل بازدیدها : 1830728402




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

کدنویسی بهینه


واضح آرشیو وب فارسی:سایت ریسک: HAW3D09-08-2008, 04:24 PMبا سلام یه مشکل عمده توی برنامه ها بهینه بودن کد هستش که بعضی وقتها حتی با کوتاه بودن کد هم اشتباه میشه بعضی از این مباحث توی ساختمان داده مطرح میشه که بیشتر به مربوط به الگوریتم میشه اما خود کد هم روشهایی برای بهینه سازیشون هست که کم کم خدمدتون عرض میکنم البته این روشها مربوط به c++ هستش و پاره ای از اونها عمومی حساب میشن HAW3D09-08-2008, 04:27 PMبهینه سازی c++ این هینه سازی ها روشهایی آسان برای استفاده در کدهای موجود و آتی برای افزایش سرعت برنامه میباشد. بهرحال این مطلب را به خاطر داشته باشید که سریعترن کد, کدی است که فراخوانی نمیشود. استفاده از لیست مقداردهی * همیشه برای مقدار دهی سازنده ها از لیست مقدار دهی استفاده کنید. برای مثال TMyClass::TMyClass(const TData &data) : m_Data(data) { } به جای TMyClass::TMyClass(const TData &data) { m_Data = data; } بدون لیست مقدار دهی متغیرهای سازنده پیش فرض پشت پرده فراخوانی شده سپس عملگر مقدار دهی فراخوانی میشود. با لیست مقدار دهی فقط سازنده کپی فراخوانی میشود. بهینه سازی حلقه ها * هر جایی که امکان دارد از حلقه پایین شمار استفاده کنید for (i = n-1; i >= 0; --i) به جای for (i = 0; i < n; ++i) در هر حلقه شرط صفر بودن حلقه سریعتر است همچنین i++ از کد ++i در قسمت سوم حلقه سریعتر است استفاده از int همیشه از نوع اینت به جای کاراکتر یا وع شورت استفاده کنید.این نوع یک نوع داده بومی برای ماشین است rf.ariyapoor09-08-2008, 07:18 PMبسیار بسیار ممنون بحث بسیار جالبی هست حتما ادامه بده ما شدیدا مشتاقیم hamed valizadeh09-08-2008, 09:04 PMبله (نظر قبلی) لطفا کد هارو در سمت چپ و در داخل تگ Code قرار بدین. من یک دونشونم نتونستم بخونم. :( HAW3D09-08-2008, 09:23 PMسلام آقا حامد چشم ویرایش شد HAW3D09-08-2008, 09:38 PMهمیشه توابع محلی را به صورت استاتیک تعریف کنید !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! به منظور جلوگیری از دیده شدن توابه در خارج از فایل کد شما.البته بعضی کامپایلر ها توانایی این بهینه سازی را به طور خودکار دارا میباشند بهینه سازی عبارت شرطی * به عقب برگشتن در عوض پرش !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در عوض !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! استفاده از عملگر شرطی مناسب برای به عقب برگرداندن یک مطلب در عوض پرش از ناحیه کد به ناحیه دیگر البته این نوع شرط در بعضی مواقی کاربرد دارد . برای فهم بهتر رجوع کنید به مباحث محل در مباحث سیستم عامل. در ضمن برای داشتن کد با بهترین سرعت از روشهای شی گرایی محض باید اجتناب شود. برای مطالعه بیشتر (کتاب سیستم عامل . ویلیام استالینگز) HAW3D09-08-2008, 10:15 PMبهینه سازی ساختار سویچ ساختار های case که عمومیتر هستند و بیشتر احتمال رخ دادن آنها وجود دارد در ابتدا قرار دهید از عملگرهای پرهزینه دوری کنید عملگر جمع از عملگر ضرب کم هزینه تر و عملگر ضرب از تقسیم کم هزینه تر است .تا جای ممکن از عملگر های پرهزینه دوری کنید. مقدار دهی هنگام تعریف متغییر تا جای ممکن در هنگام تعریف متغییر مفدار دهی را انجام دهید !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در عوض !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! تعریف سپس مقدار دهی تابع سازنده پیش فرض را فراخوانی میکند و سپس اپراتور مقدار گزاری را.مقدار دهی هنگام تعریف از کپی سازنده استفاده میکند ارسال آرگومان توسط ارجاع !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! عوض !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! rf.ariyapoor10-08-2008, 02:05 AMدستتون درد نکنه یه سوال داشتم چرا بهتره که توابع محلی رو static تعریف کنیم؟ HAW3D10-08-2008, 09:32 AMسلام یک تابع عضو استاتیک با یک کلاس مرتبط است نه با یک شی . یک عضو استاتیک را میتوانید در هر جایی برای عاملیت یا برای داده استفاده کنید بدون نیاز یه کپی شدن در تمام آبجکت ها. یک فایده دیگر اینکه میتوانیم با عضو های استاتیک تعداد اشیا را شمارش کنیم یکی رو هم که همون بالا (حوزه دید) گفته بودم hamed valizadeh10-08-2008, 01:38 PMسلام اگه میشه و دخالت در کارتون نمیشه درباره بهینه سازی ورودی و خروجی منم یه پست بدم؟ HAW3D10-08-2008, 05:23 PMآقا حامد خواهش میکنم فروم یه جاییه برای تبادل نظر . منتظر بودم تا دیگران هم در این کار منو کمک کنن.امید وارم دوستان دیگه هم به ما ملحق بشن Mina Mehdizadeh10-08-2008, 07:14 PM!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! من نفهمیدم ()undoBar چیکار میکنه ؟؟؟؟؟....فهمیدم به جای else به کار رفته ولی نفهمیدم همیشه میشه ازش استفاده کرد ؟؟؟؟ HAW3D10-08-2008, 09:26 PMسلام مینا خانوم این مساله رو بهتره با یه مثال بگم فرض کنین شما میخواین یه عدد به عنوان ماه از سال بگیرین.این عدد نباید بزرگتر از 12 باشه.دو صورت میتونین این کنترل رو داشته باشین !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! و !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با توجه به اینکه در روش دوم پدیده محل بهتر حفظ میشه کد سرعت بیشتری داره HAW3D10-08-2008, 09:39 PMاستفاده از روش عملگر و مقدار دهی البته سمش یادم رفته دقیفا چیه بهتره از روش زیر !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! به جای !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! استفاده کنیم.چونکه در این روش یک شی موقتی ساخته نمیشه قرار دادن توابع کوچک به صورت inline ش این مطلب توی کتابها توضیح داده شده. استفاده از اشیای بینام تا جای ممکن از توابع بینام استفاده کنید.مثلا !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! سرعت بیشتری از !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! داره در روش دوم اشیا و پارامتر های ارسالی از share memory استفاده میکنند hamed valizadeh10-08-2008, 10:20 PMاین هم مقاله بهینه سازی ورودی و خروجی که گفته بودم: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! hamed valizadeh10-08-2008, 10:54 PMسلام مینا خانوم این مساله رو بهتره با یه مثال بگم فرض کنین شما میخواین یه عدد به عنوان ماه از سال بگیرین.این عدد نباید بزرگتر از 12 باشه.دو صورت میتونین این کنترل رو داشته باشین !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!!و !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!!با توجه به اینکه در روش دوم پدیده محل بهتر حفظ میشه کد سرعت بیشتری داره سلام من اول رو حرفتون شک داشتم برا همین یه برنامه نوشتم که هر دفعه 10^7 با کار های بالا رو انجام میداد و وقتی 100 بار هر برنامه رو اجرا کردن و وقتی میانگین ها رو با هم مقایسه کردم زمان کد دوم بیشتر بود؟ میانگین کد اول = 0.26247 ثانیه برای 10^7 بار میانگین کد دوم = 0.2818 ثانیه برای 10^7 بار HAW3D11-08-2008, 12:52 AMآقا حامد طبیعتا باید این طوری باشه. اینجا کل کد ما 100بایت هم نمیشه. کدی با این اندازه تو خود ثبات cpu هم جا میشه. همون طور که گفتم یه مثال برای متوجه شدن چگونگی کارکرد این مساله هستش. ثانیا اگه کد ما بیشتر هم باشه به خاطر اینکه شما توی حلقه تست میکنین بازم روش اول یعنی با استفاده از شرط و نقض شرط سرعت بیشتری داره. سیستم عامل استالینگز (ص 375) همون طور که گفتم این کد مربوط میشه به مبحث محل و پراکندگی در سیستم عامل که توی سیستم های امروزی توی کدهای حجیم کارساز هستش. مراجعه شود : مدیریت حافظه قطعه بندی ؛ کتاب دکتر فهیمی به نوشته آقای استالینگز هم باید کمترین انشعاب رو از کد داشته باشیم (ص321) که البته توی کد اولی هم که من نوشته بودم هم رعایت نشده. البته این بهینه سازی رو من از یک مقاله آز آقای اندرو وینتر خوندم.خود ایشون هم ذکر کرده بودن که نسبت به شرایط با تصمیم گیری درست پرش رو در کد کم کنین. اما بازم سعی میکنم مثال و کد بهتری که کارایی این روش رو نشون بده براتون بذارم. در ضمن از مقاله خیلی خوبتون در مورد توابع ورودی و خروجی ممنونم. توصیه میکنم بقیه هم حتما مطالعه کنن. یه چیزی هم تا یادم نرفته:بیشتر این بهینه سازی هارو و و روشهای خیلی بهتر و بیشتر رو کامپایلر های امروزی مثل vc200X,borland c boulder 2005,7,... خودشون انجام میدن برای همین قصد دارم تااز این به بعد روشهای بهینه کردن کد در سیستم های توکار و بیدرنگ رو عرض کنم.البته بیشتر اینها از مقالات هستش سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 760]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن