PDA

View Full Version : تاثیر خطوط خالی و کدهای اضافه بر حجم برنامه



h.gheidrlou
یک شنبه 15 شهریور 1394, 21:36 عصر
سلام
من یه نرم افزار بدون دیتا بیس نوشتم با قابلیت های خیلی زیاد که درحالت عادی حدود 40 مگابایت حجم داره و درحالت زیپ شده حدود600کیلوبایت میشه
میخوام حداقل حجم را دشاته باشه
ایا خطوط خالی یا کارکاکترهای تعریف شده که بدون استفاده اند یا بصورت تکراری تعریف شده اند هرکدام چه تاثیراتی در افزایش حجم برنامه دان؟
ایا مثلا یک کدی که بصورت Decimalتعریف شده درحالت بلا استفاده هم حجمی از برنامه اشغال میکنه یا نه؟

sayyed javad
یک شنبه 15 شهریور 1394, 23:04 عصر
خطوط خالی فک نکنم مشکلی ایجاد کنن ولی کاراکتر های تکراری فک کنم بی تاثیر نیست.
متغیر خالی یا پر باشه در هر صورت حافظه یه بخشی رو ب اون اختصاص میده و در نتیجه موثره.
باز هم اگه اساتید مجرب هستن و مشکلی در پاسخ هست متذکر بشن.

group45
دوشنبه 16 شهریور 1394, 00:40 صبح
سلام
من یه نرم افزار بدون دیتا بیس نوشتم با قابلیت های خیلی زیاد که درحالت عادی حدود 40 مگابایت حجم داره و درحالت زیپ شده حدود600کیلوبایت میشه
میخوام حداقل حجم را دشاته باشه
ایا خطوط خالی یا کارکاکترهای تعریف شده که بدون استفاده اند یا بصورت تکراری تعریف شده اند هرکدام چه تاثیراتی در افزایش حجم برنامه دان؟
ایا مثلا یک کدی که بصورت Decimalتعریف شده درحالت بلا استفاده هم حجمی از برنامه اشغال میکنه یا نه؟
با سلام
فکر نکنم که این چیزایی که اشاره کردید تو حجم برنامه اجرایی تاثیر آنچنانی داشته باشن
ولی یکی از اصول برنامه نویسی اینه که برنامتون منظم و مرتب باشه که اگه بعد مدتی به کدای برنامتون مراجعه کردید اونا رو خوب متوجه بشید.
برنامه باید تمیز باشه
اون مقادیر تعریف شده بلا استفاده هم حجم کمی رو میگیره ولی بیشتر تو رم موثره چون یه فضایی از رم رو میگیره

SabaSabouhi
دوشنبه 16 شهریور 1394, 09:49 صبح
سلام
من یه نرم افزار بدون دیتا بیس نوشتم با قابلیت های خیلی زیاد که درحالت عادی حدود 40 مگابایت حجم داره و درحالت زیپ شده حدود600کیلوبایت میشه
میخوام حداقل حجم را دشاته باشه
ایا خطوط خالی یا کارکاکترهای تعریف شده که بدون استفاده اند یا بصورت تکراری تعریف شده اند هرکدام چه تاثیراتی در افزایش حجم برنامه دان؟
ایا مثلا یک کدی که بصورت Decimalتعریف شده درحالت بلا استفاده هم حجمی از برنامه اشغال میکنه یا نه؟

سلام
ضمن تایید نوشته‌های دوستمون group45 چند تا نکته می‌گم شاید به دردت بخوره.
1. خطوط خالی در source هیچ تاثیری در حجم فایل اجرایی یا اجرای برنامه نداره، فقط و فقط برای خوانایی کد شما هست.
2. متغیرهای اضافی تاثیری در حجم فایل اجرایی ندارن. در زمان اجرا روی Heap یا Stack براشون فضا گرفته می‌شه.
3. مقادیر ثابت مثلاً یک رشته که تعریف کردی، به میزان مورد استفاده فضا می‌گیره که البته تاثیر چندانی در فایل اجرایی نداره.


private int _myValue;
private string _myString = "This is my test string.";

تو این مثال وجود متغیرهای myValue, myString تاثیری تو حجم فایل اجرایی ندارن و رشته‌ی ثابت تعریف شده به اندازه‌ی فضایی که اشغال می‌کنه حجم فایل اجرایی رو بالا می‌بره
که کاملاً مشخص هست که حدود 20 بایت تاثیر زیادی در بزرگی یا کوچکی فایل اجرایی نداره.



4. «این یکی رو خیلی جدی بگیر»
حتماً از نرم‌افزارهایی مثل Resharper که به صورت افزونه به Visual Studio متصل می‌شن و کد رو آنالیز می‌کنن استفاده کن.
به نظر من که از نون شب واجب‌تره. البته فقط Resharper نیست، برنامه‌های زیادی هستن که این کار رو انجام می‌دن. مثلاً DevExpress محصولی
داره به نام CodeRush که همین کار رو می‌کنه. اما من چون Resharper رو از همه قوی‌تر می‌دونم از اون استفاده می‌کنم.

این برنامه کدت رو آنالیز می‌‌کنه و در کنار هر Editor یک ستون در سمت راست ایجاد می‌کنه و خطاها و اخطارها رو اونجا نمایش می‌ده. کدهایی که بهینه نیستن
رو بهت نشون می‌ده و خودش برات اون‌ها رو بهینه می‌کنه.
بدون شک هم تو حجم فایل اجرایی و هم تو سرعت اجرا تاثیر مثبت داره. و از همه مهم‌تر جلوی خیلی خیلی از خطاهای سهوی برنامه‌نویسی رو می‌گیره.
مثلاً یادت رفته یه متغیر رو مقدار دهی کنی، مثلاً بجای این که متغیر 1 رو مقدار بدی، متغیر 2 رو مقدار دادی، تقریباً 80% این نوع خطاهای سهوی رو برات می‌گیره.

صبا صبوحی