Sign in Join
Wiki copytemporary

Lazarus Faq/ar: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<div dir="rtl" style="text-align: right;">
2-
31### لماذا يكون حجم الملف التنفيذي الناتج كبير ؟
42
53تكون الملفات التنفيذية كبيرة لاحتوائها علي معلومات التنقيح (debug information) واللازمة لعمل (gdb منقح جنو ).
64
75المفسر يحتوي علي خيار لأزالة هذه المعلومات من الملف التنفيذي (-Xs),ولكن نظرا لوجود علة في المفسر (الاصدار 2.0.2 وما قبله ),فإنه لا يعمل جيدا . تم إصلاح هذه العلة بدءا من الاصدار 2.0.4 من المفسر.
86
97كذلك يمكنك أستخدام برنامج strip لأزالة معلومات التنقيح من الملف التنفيذي . وتجده عادة في المسار
108
119lazarus/pp/bin/i386-win32/.
1210
1311كل ما عليك هو تنفيذ اﻷمر
1412
1513strip --strip-all \<your executable file with path\>
1614
1715إذا أردت تصغير حجم البرنامج أكثر عليك تجربة [UPX](http://upx.sourceforge.net/) أيضا .UPX أداة رائعة لضغط الملفات التنفيذية ,كما أنه سريع في عملية فك الضغط (حوالي 10 ميجا بايت في الثانية علي معالج بنتيوم 133)
1816
1917فقط عليك تنفيذ اﻷمر
2018
2119upx \<your executable file with path\>
2220
2321بعد أستخدامك لهاتين الوسيلتين للضغط سيصبح برنامج بواجهة رسومية بسيط في لازاروس بمساحة
2422
2523- حوالي 700 كيلو بايت في أنظمة لينوكس .
2624
2725- حوالي 420 كيلوبايت علي أنظمة ويندوز .
2826
2927مزيد من التفاصيل عن أستخدام UPX تجدها في [[Size Matters]]
3028
3129من المهم أيضا أن تلاحظ أن برنامج "مرحبا بالعالم " في Lazarus يحتوي علي مزايا كثيرة .فهو يتضمن :
3230
3331- مكتبة لمعالجة ملفات xml
3432
3533- مكتبة لمعالجة ملفات الصور من نوع png,xpm,bmb و ico
3634
3735- تقريبا كل الويدجات من مكتبة مكونات لازاروس (Lazarus Component Libirary LCL)
3836
3937- كل مكتبات التشغيل الخاصة بـ Free Pascal
4038
4139لذا لزم أن يكون كبير الحجم ولكنه بذلك يحتوي علي كل شئ بحتاجه أي برنامج حقيقي لكي يعمل .
4240
4341حجم الملف التنفيذي الناتج من lazarus يبدأ كبير , ولكنه ينمو ببطء شديد وذلك بسبب مفسر free pascal والطريقة اللتي تعمل بها فورمات lazarus .
4442
4543علي سبيل المثال لو نظرنا إلي تطبيق مكتوب بـ C++ يبدأ ضغير جدا في برنامج "مرحبا بالعالم " ولكنه يبدأ بالنمو بشكل سريع عندما تبدأ في إضافة خواص متقدمة له .
4644
47-<figure>
48-<img src="Lazarus_vs_cpp.png" title="Lazarus_vs_cpp.png" />
49-<figcaption>Lazarus_vs_cpp.png</figcaption>
50-</figure>
45+![](/wiki-images/d/de/Lazarus_vs_cpp.png)
5146
5247**دليل سريع لكيفية تقليص حجم تطبيق Lazarus/FPC** *(أختبر علي اﻷصدار 0.926 من Lazarus)*
5348
5449- 1\. Project\|Compiler Options\|Code\|Smart Linkable (-CX) -\> Checked
5550- 2\. Project\|Compiler Options\|Linking\|Debugging\| Uncheck all except
5651
5752Strip Symbols From Executable (-Xs) -\> Checked
5853
5954- 3\. Project\|Compiler Options\|Linking\|Link Style\|Link Smart (-XX) -\> Checked
6055
6156وعلي ما يبدو أن أهم عنصر في الخطوات السابقة هو رقم 2 .لتطبيق بسيط يصبح الحجم من 1 الي 3 ميجا بدلا من 15 -20 ميجا . هنا يمكنك أيضا تجربة
6257
6358Project\|Compiler Options\|Code\|Optimizations\|smaller rather than faster -\> Checked
6459
6560(ولكن أحذر فهذا قد يقلل اﻵداء)
6661
6762- 4\. (Optional) Run UPX \<your_executable\> to compress your binary by an additional factor of 2-3 (Warning: as indicated above, there are drawbacks to using UPX).
6863
6964**Chart of default sizes for an empty Application with various settings and operating systems**
7065
7166Well I ran tests I did on Lazarus 0.9.29 with FPC 2.4 (FPC 2.2.4 with Windows). *Optimized compiler* mean using the advices above but *without using UPX*. *Default Lazarus* means as installed from package/setup. *LCL without debug informations* mean after rebuilding Lazarus IDE and LCL without debug informations (-g-).
7267
73-<TABLE WIDTH=642 BORDER=0 CELLPADDING=1 CELLSPACING=0>
74-
75-<TR VALIGN=TOP>
76-
77-<TD WIDTH=263>
78-
79-</TD>
80-
81-<TD WIDTH=14>
82-
8368   
8469
85-</TD>
86-
87-<TD WIDTH=111>
88-
8970Default Lazarus
9071
91-</TD>
92-
93-<TD WIDTH=14>
94-
9572   
9673
97-</TD>
98-
99-<TD WIDTH=220>
100-
10174LCL without debug informations
10275
103-</TD>
104-
105-</TR>
106-
107-<TR VALIGN=TOP>
108-
109-<TD WIDTH=263>
110-
111-<U>Ubuntu 64 bits / Lazarus 64 bits</U>
112-
113-</TD>
114-
115-<TD COLSPAN=4 WIDTH=372>
116-
117-</TD>
118-
119-</TR>
120-
121-<TR VALIGN=TOP>
122-
123-<TD WIDTH=263>
76+Ubuntu 64 bits / Lazarus 64 bits
12477
12578Default application
12679
127-</TD>
128-
129-<TD WIDTH=14>
130-
13180   
13281
133-</TD>
134-
135-<TD WIDTH=111>
136-
1378213,4  Mb
13883
139-</TD>
140-
141-<TD WIDTH=14>
142-
14384   
14485
145-</TD>
146-
147-<TD WIDTH=220>
148-
149867,5 Mb / 8
15087
151-</TD>
152-
153-</TR>
154-
155-<TR VALIGN=TOP>
156-
157-<TD WIDTH=263>
158-
15988Optimized compiler
16089
161-</TD>
162-
163-<TD WIDTH=14>
164-
16590   
16691
167-</TD>
168-
169-<TD WIDTH=111>
170-
171924,4 Mb
17293
173-</TD>
174-
175-<TD WIDTH=14>
176-
17794   
17895
179-</TD>
180-
181-<TD WIDTH=220>
182-
183962,70 Mb (0.29svn FPC2.4 2,5)
18497
185-</TD>
186-
187-</TR>
188-
189-<TR VALIGN=TOP>
190-
191-<TD WIDTH=263>
192-
19398   
19499
195-</TD>
196-
197-<TD COLSPAN=4 WIDTH=372>
198-
199-</TD>
200-
201-</TR>
202-
203-<TR VALIGN=TOP>
204-
205-<TD WIDTH=263>
206-
207-<U>Ubuntu 32 bits / Lazarus 32 bits</U>
208-
209-</TD>
210-
211-<TD COLSPAN=4 WIDTH=372>
212-
213-</TD>
214-
215-</TR>
216-
217-<TR VALIGN=TOP>
218-
219-<TD WIDTH=263>
100+Ubuntu 32 bits / Lazarus 32 bits
220101
221102Default application
222103
223-</TD>
224-
225-<TD WIDTH=14>
226-
227104   
228105
229-</TD>
230-
231-<TD WIDTH=111>
232-
23310619,6  Mb
234107
235-</TD>
236-
237-<TD WIDTH=14>
238-
239108   
240109
241-</TD>
242-
243-<TD WIDTH=220>
244-
2451105,7 Mb
246111
247-</TD>
248-
249-</TR>
250-
251-<TR VALIGN=TOP>
252-
253-<TD WIDTH=263>
254-
255112Optimized compiler
256113
257-</TD>
258-
259-<TD WIDTH=14>
260-
261114   
262115
263-</TD>
264-
265-<TD WIDTH=111>
266-
2671162,9 Mb
268117
269-</TD>
270-
271-<TD WIDTH=14>
272-
273118   
274119
275-</TD>
276-
277-<TD WIDTH=220>
278-
2791201,6 Mb
280121
281-</TD>
282-
283-</TR>
284-
285-<TR VALIGN=TOP>
286-
287-<TD WIDTH=263>
288-
289122   
290123
291-</TD>
292-
293-<TD COLSPAN=4 WIDTH=372>
294-
295-</TD>
296-
297-</TR>
298-
299-<TR VALIGN=TOP>
300-
301-<TD WIDTH=263>
302-
303-<U>Windows XP 32 bits / Lazarus 32 bits</U>
304-
305-</TD>
306-
307-<TD COLSPAN=4 WIDTH=372>
308-
309-</TD>
310-
311-</TR>
312-
313-<TR VALIGN=TOP>
314-
315-<TD WIDTH=263>
124+Windows XP 32 bits / Lazarus 32 bits
316125
317126Default application
318127
319-</TD>
320-
321-<TD WIDTH=14>
322-
323128   
324129
325-</TD>
326-
327-<TD WIDTH=111>
328-
32913011,8 Mb
330131
331-</TD>
332-
333-<TD WIDTH=14>
334-
335132   
336133
337-</TD>
338-
339-<TD WIDTH=220>
340-
3411342,14 Mb
342135
343-</TD>
344-
345-</TR>
346-
347-<TR VALIGN=TOP>
348-
349-<TD WIDTH=263>
350-
351136Optimized compiler
352137
353-</TD>
354-
355-<TD WIDTH=14>
356-
357138   
358139
359-</TD>
360-
361-<TD WIDTH=111>
362-
3631401,62 Mb
364141
365-</TD>
366-
367-<TD WIDTH=14>
368-
369142   
370143
371-</TD>
372-
373-<TD WIDTH=220>
374-
3751441,50 Mb
376145
377-</TD>
378-
379-</TR>
380-
381-<TR VALIGN=TOP>
382-
383-<TD WIDTH=263>
384-
385146   
386147
387-</TD>
388-
389-<TD COLSPAN=4 WIDTH=372>
390-
391-</TD>
392-
393-</TR>
394-
395-<TR VALIGN=TOP>
396-
397-<TD WIDTH=263>
398-
399-<U>Windows Seven 64 bits / Lazarus 64 bits</U>
400-
401-</TD>
402-
403-<TD COLSPAN=4 WIDTH=372>
404-
405-</TD>
406-
407-</TR>
408-
409-<TR VALIGN=TOP>
410-
411-<TD WIDTH=263>
148+Windows Seven 64 bits / Lazarus 64 bits
412149
413150Default application
414151
415-</TD>
416-
417-<TD WIDTH=14>
418-
419152   
420153
421-</TD>
422-
423-<TD WIDTH=111>
424-
42515412,3  Mb
426155
427-</TD>
428-
429-<TD WIDTH=14>
430-
431156   
432157
433-</TD>
434-
435-<TD WIDTH=220>
436-
4371583,20 Mb
438159
439-</TD>
440-
441-</TR>
442-
443-<TR VALIGN=TOP>
444-
445-<TD WIDTH=263>
446-
447160Optimized compiler
448161
449-</TD>
450-
451-<TD WIDTH=14>
452-
453162   
454163
455-</TD>
456-
457-<TD WIDTH=111>
458-
4591642,14 Mb
460165
461-</TD>
462-
463-<TD WIDTH=14>
464-
465166   
466167
467-</TD>
468-
469-<TD WIDTH=220>
470-
4711682,16 Mb
472-
473-</TD>
474-
475-</TR>
476-
477-</TABLE>
478-
479-</div>
480169
481170---
482171*From the Free Pascal wiki, page "Lazarus Faq/ar", as it stood on 2015-06-06 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
483172Category: Arabic
484173Category: FAQs/ar
485174Category: Lazarus/ar

Back to history