Sign in Join
Wiki copytemporary

Lazarus Faq/ar: what changed

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

Title: Lazarus Faq/ar

OldNewLine
1+<div dir="rtl" style="text-align: right;">
2+
3+### لماذا يكون حجم الملف التنفيذي الناتج كبير ؟
4+
5+تكون الملفات التنفيذية كبيرة لاحتوائها علي معلومات التنقيح (debug information) واللازمة لعمل (gdb منقح جنو ).
6+
7+المفسر يحتوي علي خيار لأزالة هذه المعلومات من الملف التنفيذي (-Xs),ولكن نظرا لوجود علة في المفسر (الاصدار 2.0.2 وما قبله ),فإنه لا يعمل جيدا . تم إصلاح هذه العلة بدءا من الاصدار 2.0.4 من المفسر.
8+
9+كذلك يمكنك أستخدام برنامج strip لأزالة معلومات التنقيح من الملف التنفيذي . وتجده عادة في المسار
10+
11+lazarus/pp/bin/i386-win32/.
12+
13+كل ما عليك هو تنفيذ اﻷمر
14+
15+strip --strip-all \<your executable file with path\>
16+
17+إذا أردت تصغير حجم البرنامج أكثر عليك تجربة [UPX](http://upx.sourceforge.net/) أيضا .UPX أداة رائعة لضغط الملفات التنفيذية ,كما أنه سريع في عملية فك الضغط (حوالي 10 ميجا بايت في الثانية علي معالج بنتيوم 133)
18+
19+فقط عليك تنفيذ اﻷمر
20+
21+upx \<your executable file with path\>
22+
23+بعد أستخدامك لهاتين الوسيلتين للضغط سيصبح برنامج بواجهة رسومية بسيط في لازاروس بمساحة
24+
25+- حوالي 700 كيلو بايت في أنظمة لينوكس .
26+
27+- حوالي 420 كيلوبايت علي أنظمة ويندوز .
28+
29+مزيد من التفاصيل عن أستخدام UPX تجدها في [[Size Matters]]
30+
31+من المهم أيضا أن تلاحظ أن برنامج "مرحبا بالعالم " في Lazarus يحتوي علي مزايا كثيرة .فهو يتضمن :
32+
33+- مكتبة لمعالجة ملفات xml
34+
35+- مكتبة لمعالجة ملفات الصور من نوع png,xpm,bmb و ico
36+
37+- تقريبا كل الويدجات من مكتبة مكونات لازاروس (Lazarus Component Libirary LCL)
38+
39+- كل مكتبات التشغيل الخاصة بـ Free Pascal
40+
41+لذا لزم أن يكون كبير الحجم ولكنه بذلك يحتوي علي كل شئ بحتاجه أي برنامج حقيقي لكي يعمل .
42+
43+حجم الملف التنفيذي الناتج من lazarus يبدأ كبير , ولكنه ينمو ببطء شديد وذلك بسبب مفسر free pascal والطريقة اللتي تعمل بها فورمات lazarus .
44+
45+علي سبيل المثال لو نظرنا إلي تطبيق مكتوب بـ C++ يبدأ ضغير جدا في برنامج "مرحبا بالعالم " ولكنه يبدأ بالنمو بشكل سريع عندما تبدأ في إضافة خواص متقدمة له .
46+
47+<figure>
48+<img src="Lazarus_vs_cpp.png" title="Lazarus_vs_cpp.png" />
49+<figcaption>Lazarus_vs_cpp.png</figcaption>
50+</figure>
51+
52+**دليل سريع لكيفية تقليص حجم تطبيق Lazarus/FPC** *(أختبر علي اﻷصدار 0.926 من Lazarus)*
53+
54+- 1\. Project\|Compiler Options\|Code\|Smart Linkable (-CX) -\> Checked
55+- 2\. Project\|Compiler Options\|Linking\|Debugging\| Uncheck all except
56+
57+Strip Symbols From Executable (-Xs) -\> Checked
58+
59+- 3\. Project\|Compiler Options\|Linking\|Link Style\|Link Smart (-XX) -\> Checked
60+
61+وعلي ما يبدو أن أهم عنصر في الخطوات السابقة هو رقم 2 .لتطبيق بسيط يصبح الحجم من 1 الي 3 ميجا بدلا من 15 -20 ميجا . هنا يمكنك أيضا تجربة
62+
63+Project\|Compiler Options\|Code\|Optimizations\|smaller rather than faster -\> Checked
64+
65+(ولكن أحذر فهذا قد يقلل اﻵداء)
66+
67+- 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).
68+
69+**Chart of default sizes for an empty Application with various settings and operating systems**
70+
71+Well 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-).
72+
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+
83+   
84+
85+</TD>
86+
87+<TD WIDTH=111>
88+
89+Default Lazarus
90+
91+</TD>
92+
93+<TD WIDTH=14>
94+
95+   
96+
97+</TD>
98+
99+<TD WIDTH=220>
100+
101+LCL without debug informations
102+
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>
124+
125+Default application
126+
127+</TD>
128+
129+<TD WIDTH=14>
130+
131+   
132+
133+</TD>
134+
135+<TD WIDTH=111>
136+
137+13,4  Mb
138+
139+</TD>
140+
141+<TD WIDTH=14>
142+
143+   
144+
145+</TD>
146+
147+<TD WIDTH=220>
148+
149+7,5 Mb / 8
150+
151+</TD>
152+
153+</TR>
154+
155+<TR VALIGN=TOP>
156+
157+<TD WIDTH=263>
158+
159+Optimized compiler
160+
161+</TD>
162+
163+<TD WIDTH=14>
164+
165+   
166+
167+</TD>
168+
169+<TD WIDTH=111>
170+
171+4,4 Mb
172+
173+</TD>
174+
175+<TD WIDTH=14>
176+
177+   
178+
179+</TD>
180+
181+<TD WIDTH=220>
182+
183+2,70 Mb (0.29svn FPC2.4 2,5)
184+
185+</TD>
186+
187+</TR>
188+
189+<TR VALIGN=TOP>
190+
191+<TD WIDTH=263>
192+
193+   
194+
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>
220+
221+Default application
222+
223+</TD>
224+
225+<TD WIDTH=14>
226+
227+   
228+
229+</TD>
230+
231+<TD WIDTH=111>
232+
233+19,6  Mb
234+
235+</TD>
236+
237+<TD WIDTH=14>
238+
239+   
240+
241+</TD>
242+
243+<TD WIDTH=220>
244+
245+5,7 Mb
246+
247+</TD>
248+
249+</TR>
250+
251+<TR VALIGN=TOP>
252+
253+<TD WIDTH=263>
254+
255+Optimized compiler
256+
257+</TD>
258+
259+<TD WIDTH=14>
260+
261+   
262+
263+</TD>
264+
265+<TD WIDTH=111>
266+
267+2,9 Mb
268+
269+</TD>
270+
271+<TD WIDTH=14>
272+
273+   
274+
275+</TD>
276+
277+<TD WIDTH=220>
278+
279+1,6 Mb
280+
281+</TD>
282+
283+</TR>
284+
285+<TR VALIGN=TOP>
286+
287+<TD WIDTH=263>
288+
289+   
290+
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>
316+
317+Default application
318+
319+</TD>
320+
321+<TD WIDTH=14>
322+
323+   
324+
325+</TD>
326+
327+<TD WIDTH=111>
328+
329+11,8 Mb
330+
331+</TD>
332+
333+<TD WIDTH=14>
334+
335+   
336+
337+</TD>
338+
339+<TD WIDTH=220>
340+
341+2,14 Mb
342+
343+</TD>
344+
345+</TR>
346+
347+<TR VALIGN=TOP>
348+
349+<TD WIDTH=263>
350+
351+Optimized compiler
352+
353+</TD>
354+
355+<TD WIDTH=14>
356+
357+   
358+
359+</TD>
360+
361+<TD WIDTH=111>
362+
363+1,62 Mb
364+
365+</TD>
366+
367+<TD WIDTH=14>
368+
369+   
370+
371+</TD>
372+
373+<TD WIDTH=220>
374+
375+1,50 Mb
376+
377+</TD>
378+
379+</TR>
380+
381+<TR VALIGN=TOP>
382+
383+<TD WIDTH=263>
384+
385+   
386+
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>
412+
413+Default application
414+
415+</TD>
416+
417+<TD WIDTH=14>
418+
419+   
420+
421+</TD>
422+
423+<TD WIDTH=111>
424+
425+12,3  Mb
426+
427+</TD>
428+
429+<TD WIDTH=14>
430+
431+   
432+
433+</TD>
434+
435+<TD WIDTH=220>
436+
437+3,20 Mb
438+
439+</TD>
440+
441+</TR>
442+
443+<TR VALIGN=TOP>
444+
445+<TD WIDTH=263>
446+
447+Optimized compiler
448+
449+</TD>
450+
451+<TD WIDTH=14>
452+
453+   
454+
455+</TD>
456+
457+<TD WIDTH=111>
458+
459+2,14 Mb
460+
461+</TD>
462+
463+<TD WIDTH=14>
464+
465+   
466+
467+</TD>
468+
469+<TD WIDTH=220>
470+
471+2,16 Mb
472+
473+</TD>
474+
475+</TR>
476+
477+</TABLE>
478+
479+</div>
480+
481+---
482+*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).*
483+Category: Arabic
484+Category: FAQs/ar
485+Category: Lazarus/ar

Back to history