سؤال

كيف يمكنني تقليل الموارد داخل طلبي؟لقد جربت عددًا من الحيل التي قمت بتقليلها وإعادة كتابة الكود ، وتقليل رقم السطر ، وتقليل التعليقات ، وضغطت EXE النهائية ، ولكن هذه ليست الطريقة التي أريد أن أذهب بها ، وتحسين نوع المتغير ، وإزالة الرموز ، BMP ، JPG ، من داخل التطبيق ، أحتاج إلى أن تكون تطبيقاتي صغيرة قدر الإمكان في EXE النهائي وفي استهلاك الموارد العامة.أي أفكار أخرى ، أي مقالات جيدة حول هذا الموضوع شكرا

هل كانت مفيدة؟

المحلول

ووضع أي صور التي يستخدمها البرنامج أكثر من مرة واحدة في صورة قوائم أو مكونات TGraphic، ووضع تلك البيانات في وحدة نمطية. ربط جميع المكونات الخاصة بك باستخدام هذه رموزا للقوائم الصورة. إذا كنت تستخدم المفتش كائن لإضافة نفس الشكل المنقوش إلى العديد من المكونات سوف ينتهي بك الأمر مع نسخ متعددة منه، وزيادة كل من وقت التحميل وقابل للتنفيذ والعمل تعيين حجم.

نصائح أخرى

ماذا عن إيقاف تشغيل معلومات التصحيح في خيارات المشروع:

  • لا توجد معلومات التصحيح
  • لا الشيكات وقت التشغيل
  • تقليل عدد استخدامات الوحدات الخارجية إن أمكن.

لكن معلومات التصحيح يمكن أن تكون قاتلاً رئيسياً.

وأود أن لا تنفق أي وقت إزالة تعليقات المترجم شرائط بها على أي حال

هل يمكن الرجوع الصور الخاصة بك من خدمة خارجية (مثل أمازون S3)

وخدعة لطيفة للحد من حجم قابل للتنفيذ (في الواقع، حجم PE-صورة، وهذا ينطبق على من DLL أيضا)، عندما <لأ href = "http://en.wikipedia.org/wiki/Relocation_(computer_science)" يختلط = "noreferrer"> نقل ليست قضية:

وترك نقل المعلومات، خارجا!

في دلفي، هل يمكن أن تفعل مثل هذا:

// Remove relocation table (generates smaller executables) :
// (See http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html)
{$SetPEFlags 1} // 1 = Windows.IMAGE_FILE_RELOCS_STRIPPED

وهتاف!

وإسقاط VCL واستخدام KOL وMCK: http://kolmck.net/

وهذا هو جذري وتغيير كبير جدا، ولكن سوف تحصل على حجم إكس أسفل.

لا تقم بإنشاء جميع أشكال تلقائيا، على الرغم من دلفي يعطيك الخيار الآن، وفعل ذلك دون قيد أو شرط عن أشكال جديدة في الإصدارات السابقة. فقط إنشاء النموذج الرئيسي، واستخدام التعليمات البرمجية التالية (الزائفة) لتبين من الحوارات مشروط:

procedure TMainForm.OptionDialog(Sender: TObject);
var
  Dlg: TOptionDialog;
begin
  Dlg := TOptionDialog.Create(nil);
  try
    // prepare dialog
    if Dlg.ShowModal = mrOK then begin
      // apply changed settings
    end;
  finally
    Dlg.Free;
  end;
end;

وهذا سوف تقصر تطبيق وقت التحميل والحد من استخدام الموارد العامة الخاصة بك، وخاصة بالنسبة الحوارات المعقدة مع العديد من الضوابط.

قم بالقياس أولاً، ثم قم بالتحسين.ما هو حجم طلبك، وما الحجم الذي تريد أن يكون عليه؟

هل أنت قلق بشأن...

ما حجم ملف التطبيق .EXE الموجود على القرص؟ثم...

  • البناء باستخدام حزم وقت التشغيل على.سوف تحصل على ملف .EXE صغير، ولكنك ستحتاج إلى توزيع .bpls أيضًا.

ذاكرة الوصول العشوائي التي يستخدمها التطبيق؟ثم...

  • البناء مع إيقاف تشغيل حزم وقت التشغيل - سيحذف الرابط معظم الأجزاء غير المستخدمة من الحزم.

حجم مثبت التطبيق؟ثم...

  • البناء باستخدام حزم وقت التشغيل عن
  • استخدم إعداد Inno
  • معظم الاقتراحات أعلاه؟

ما حجم التطبيق بالإضافة إلى الحزم/DLLS بعد التثبيت؟ثم...

  • البناء باستخدام حزم وقت التشغيل عن, واستخدم UPX
Project -> Options -> Compiler:
===============================
Optimization ON
Debug Information OFF
Local Symbols OFF
Reference Info OFF
Use debug DCUs OFF

Project -> Options -> Packages:
===============================
Build with runtime packages ON (but you will have to distribute your BPLs!)
Note to non-delphi folks:
a BPL is just a DLL, but with magic Delphi dust to make it easier to use.

هذه المادة قد تكون مفيدة لك.

هل هو حقا يستحق كل هذا العناء؟ نحن لا نعيش في 640 مرات ذاكرة KB بعد الآن.

إذا كنت تريد EXE لتكون أصغر ثم استخدام الربط الديناميكي من الحزم والمكتبات. أن يعطي أكثر من دفعة. أيضا وضع كل ما تبذلونه من الموارد (الصور والأصوات) في DLL منفصل. سوف يتم حفظ أي شيء عن طريق حذف التعليقات وكتابة كل ما تبذلونه من التعليمات البرمجية في سطر واحد طويل.

وتحدث عادة إذا كنت ترغب في حجم EXE أصغر ثم انتقل مع إصدار سابق من دلفي.

وأنا دائما استخدام UPX لضغط ملفات إكس. وهو يعمل تماما، وغالبا ما يؤدي إلى ضغط عامل 2. وبطبيعة الحال، تعطيل كافة معلومات التصحيح سوف تساعد على تقليل حجم الملف.

استخدم في التعريف الذاكرة مثل واحد من بوابة الأحمر ل الحصول على عرض في الوقت الحقيقي إلى استخدام الذاكرة وقت التشغيل.

وUPX وASPack سيخلق الكثير من المتاعب لمكافحة الفيروسات وأجهزة الإنذار إيجابية كاذبة. كاسبيرسكي يفعل ذلك كثيرا!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top