بایگانی

Archive for the ‘Performance’ Category

تاثیر class selector روی performance در JQuery

مارس 23, 2010 ۱ دیدگاه

نکته ای که در مورد JQuery لازم است بدانید مربوط به performance می باشد.برای انتخاب یک کلاس شما می توانید از سه روش استفاده کنید :

  1. $ (‹.myclass›)
  2. $ (‹p.myclass›)
  3. $ (‹.myclass.otherclass›)

اگر در جایی از این Framework استفاده می کنید که سرعت و performance برای شما اهمیت زیادی دارد بهتر است از روش دوم برای دسترسی به یک کلاس استفاده کنید.چون این روش یک تابع native را در جاوااسکریپت اجرا میکند(getElementsByTagName) که در اینجا JQuery یک فیلتر خواهد داشت و فقط در بین تگهای <p> کلاس مورد نظر را جستجو خواهد کرد.اما این درباره روش های دیگر طور دیگری خواهد بود و JQuery تابع getElementsByClassName() را اجرا خواهد کرد که در این صورت هر عنصری از DOM مورد جستجو قرار خواهد گرفت که این مسئله می تواند در سرعت تاثیر بگذارد.البته این تفاوت سرعت بستگی به پیچیدگی صفحه و تعداد المنت های DOM خواهد داشت.

بطور کلی نیازی به تمرکز به این سطح از بهینه سازی نیست و شما می توانید از آن صزف نظرکنید اما یادتان باشد که شما در محیط Web دارید برنامه نویسی می کنید نه ویندوز.

Vote on iDevCenter

Advertisements
دسته‌ها:JQuery, Performance برچسب‌ها: ,

معرفی ابزار Perfmon

Perfmon که مخفف Performance Monitor است یکی از ابزارهایی است که در ویندوز وجود دارد و شما می توانید برای مشاهده Performance یک برنامه از آن استفاده کنید.البته این امکان وجود دارد که شما Performance برنامه ها را در Task Manager و در تب Performance هم مشاهده کنید ولی این تب یک حالت کلی را در اختیار شما خواهد گذاشت درحالیکه با استفاده از Perfmon می توانید یک حالت Costomize داشته باشید و این ابزار را منحصر به دیدن Performance تنها یک برنامه کنید.

برای اجرای این ابزار شما می توانید در Run دستور Perfmon را تایپ کنید تا محیط برنامه برایتان نمایان شود و یا در cmd دستور Perfmon که syntax آن به صورت زیر است را تایپ کنید:

perfmon.exe [file_name] [/HTMLFILE:converted_file settings_file]

از توضیح در مورد پارامترها صرف نظر میکنم.شما می توانید اطلاعات بیشتر را در لینک زیر مشاهده کنید:

http://technet.microsoft.com/en-us/library/bb490957.aspx

توجه داشته باشید که در مقالاتی که در مورد بهبود بخشیدن Performance برنامه های نوشته شده در دات نت خواهم نوشت از این ابزار برای مقایسه استفاده خواهیم کرد.

دسته‌ها:Performance, Windows برچسب‌ها: ,

تفاوت الحاق توسط StringBuilder و string در Performance

مارس 17, 2010 3 دیدگاه

چند وقت پیش مطلبی رو جایی دیدم که به نظرم جالب بود.ولی اون موقع وقت نداشتم برم دنبالش.مطلب در مورد استفاده از StringBuilder بود و استفاده از اون به جای string در concatenate.

اکثر برنامه نویسان وقتی میخواهند دو رشته را به هم بچسبانند از عملگر + استفاده میکنندو به این ترتیب دو رشته باهمدیگر ترکیب خواهند شد.برای concatenate دو روش خواهیم داشت.یکی استفاده از همین عملگر + که برای الحاق دو رشته از نوع string مورد استفاده قرار میگیره و یکی هم استفاده از StringBuilder.

تفاوت استفاده از این دو روش فقط در Performance هست و هر دو روش نتیجه یکسانی رو به ما خواهد داد.

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

Str1 += str2;

در این مورد استفاده با وجود اینکه ما دو نوع داریم ولی 3 نمونه در حافظه خواهیم داشت.اما دلیل :

در .Net آبجکت های string تغییرناپذیر هستن.یعنی وقتی به وجود میان مقدار اونها قابل تغییر نخواهد بود.به همین دلیل هست که وقتی مقدار str1 با str2 الحاق میشه در حقیقت str1 قبلی دور ریخته میشه و یک نمونه (instance) جدید از اون ساخته میشه که مقدار حاصل از concatenate را خواهد داشت.یعنی با این تعاریف 3 نمونه str1 قبلی، str1 جدید و یک نمونه هم از str2 که قبلا وجود داشته و تغییری نکرده است را خواهیم داشت.

حالا تصور کنید ما بخواهیم این عمل رو چندین بار با یک نمونه انجام بدیم که این کار باعث به وجود آمدن instance های اضافی در حافظه خواهد شد.

حالا ببینیم StringBuilder چگونه کار میکنه؟!

StringBuilder sb = new StringBuilder();

Sb.Append(str2);

StringBuilder برخلاف string تغییرپذیر است.به همین دلیل شما فقط یک نمونه از این کلاس خواهید داشت و وقتی یک رشته جدید رو به اون می چسبونید نمونه دیگری از اون ایجاد نخواهد شد و رشته جدید به نمونه موجود از StringBuilder اضافه خواهد شد.

طبیعتا استفاده از StringBuilder به صرفه تر و سریعتر خواهد بود.


Vote on iDevCenter

دسته‌ها:C#.Net, Performance برچسب‌ها: , , ,

Performance

بطور کلی اصطلاح Performance به سرعت یک برنامه اشاره دارد.بعضی مواقع شما میتوانید سرعت اجرای برنامه خود را با اعمال یک سری قوانین در کدهایتان بالا ببرید.در بعضی از برنامه ها، این مسئله مهم خواهد بود که شما به دقت کدهای خود را بررسی و امتحان کنید تا مطمئن شوید سریعترین حالت ممکن را انتخاب کرده اید.ولی در بعضی از برنامه ها نیز این مسئله اهمیت چندانی نخواهد داشت چون کد نوشته شده به طرز قابل قبولی اجرا خواهد شد.

وقتی شما میخواهید Performance را اندازه گیری و بهینه کنید، از رهنمودهای زیر باید پیروی کنید:

  • با تعیین اهداف Performance و تجزیه و تحلیل آن شروع کنید تا تعیین کنید چه مواقعی کدهای شما با آن اهداف همخوانی ندارند.
  • کدهای خود را در ابتدا طوری بنویسید که درست باشد، از اصول یک طراحی خوب تبعیت کند و منظورتان را به درستی نشان دهد.
  • اگر شما مجبور به بهینه سازی هستید ابتدا از قسمت های کوچکتر برنامه شروع کنید.اگر برنامه شما خواسته شما را از لحاظ Performance برطرف نمی کند مکان هایی از برنامه را که Performance  می تواند در آنجا می تواند ارتقاء پیدا کند مشخص کنید.دقت کنید که بعضی از چیزها شاید مشهود نباشد مانند متدهایی که به ندرت فراخوانی میشوند، یا متد هایی که ارزش زمانی آنها خیلی کمتر از متدهای دیگر است(متد A که 50 میلی ثانیه طول میکشد در مقابل متد B که 30 ثانیه طول میکشد)
دسته‌ها:Performance برچسب‌ها: