Kenapa dengan DLL ukuran aplikasi tidak kecil?

Pemrograman Delphi

Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby mambamaestro » 31 May 2011, 20:30

Dear All,
?????? ????? ? ???? ???? ? ??????

Tujuan menggunakan dll (dynamic link library) salah satunya adalah agar aplikasi bisa 'dipecah-pecah', sehingga memudahkan proses update, yakni tidak perlu mengupdate seluruh aplikasi, namun hanya bagian tertentu aplikasi yang disimpan dalam dll. Namun ada masalah yang membuat tujuan diatas tidak bisa sepenuhnya dicapai. Yakni:

Ketika membuat aplikasi dengan banyak form dalam delphi, dan sejumlah form-form dipisahkan-pisahkan dengan menyimpannya dalam .dll, sehingga aplikasi terdiri atas satu file .exe dan beberapa file .dll, ternyata total jendral seluruh hasil kompilasi, JUSTRU JAUH LEBIH BESAR, daripada hasil kompilasi dengan satu single .exe saja.

Saya berasumsi, hal ini disebabkan: setiap dll adalah satu project dalam delphi. Dan jika dll digunakan untuk menyimpan form, maka otomatis unit-unit standard spt Forms, StdCtrls, Dialogs, dan lain sebagainya, di 'uses' oleh masing-masing project dll. Yang hal ini membuat masing-masing unit form 'tidak berbagi pakai' unit-unit standard( Forms, StdCtrls, Dialogs, dlsb), sehingga masing-masing dll menyimpan hasil kompilasi unit-unit standard. Berbeda jika aplikasi hanya menghasilkan satu file .exe saja, seluruh unit form 'berbagai pakai' unit-unit standard.

Pertanyaan: apakah benar asumsi saya? jika ya, bagaimana seharusnya teknik yang digunakan untuk mengatasi hal ini ? Yakni agar file-file dll yang dihasilkan jauh lebih kecil, dan total ukuran hasil kompilasi file-file dll dan .exe nya TIDAK BERBEDA JAUH dengan apabila dikompilasi menjadi satu file .exe saja?

Sekian. Trims atas jawabannya.
mambamaestro
Member
 
Posts: 156
Joined: 06 May 2010, 14:14
Location: Surabaya

RE: Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby jrp » 31 May 2011, 20:51

Setuju dengan asumsi Pak Mamba.

DLL lebih bermanfaat kalau kita mendistribusikan lebih dari 1 aplikasi yang menggunakan DLL tersebut (DLL yang sama). Nampaknya ini sudah "kodratnya" jadi mungkin sulit diatasi.

Dulu saya pernah berusaha untuk membagi modul-modul program aplikasi dalam DLL, tapi akhirnya batal karena melihat usaha yang dikeluarkan lebih besar dari manfaat yang didapat, karena aplikasi itu adalah aplikasi kecil. Mungkin untuk aplikasi besar/keluarga aplikasi baru terasa manfaatnya. Kalau untuk aplikasi kecil nampaknya DLL lebih bermanfaat untuk plugin yang didistribusikan terpisah dari aplikasi utama.

Untuk proses update, supaya tidak usah mengupdate seluruh aplikasi, bisa dicoba dengan membuat patch. Saya tidak tahu patcher apa yang bagus, tapi yang jelas kita harus cari yang "resmi" biar tidak bermusuhan dengan antivirus.

jrp
jrp
Junior Member
 
Posts: 32
Joined: 29 May 2010, 20:47

RE: Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby leledumbo » 01 Jun 2011, 14:59

Saya berasumsi, hal ini disebabkan: setiap dll adalah satu project dalam delphi. Dan jika dll digunakan untuk menyimpan form, maka otomatis unit-unit standard spt Forms, StdCtrls, Dialogs, dan lain sebagainya, di 'uses' oleh masing-masing project dll. Yang hal ini membuat masing-masing unit form 'tidak berbagi pakai' unit-unit standard( Forms, StdCtrls, Dialogs, dlsb), sehingga masing-masing dll menyimpan hasil kompilasi unit-unit standard.

Betul sekali, kecuali semua unit yang dipakai juga didistribusikan dalam bentuk DLL, maka dalam setiap DLL akan terdapat kopian dari unit2 yang dipakai elemennya (variabel, fungsi, kelas, dll) sehingga akan menambah ukuran final executable.
leledumbo
Senior Member
 
Posts: 262
Joined: 24 May 2010, 15:58

RE: Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby mambamaestro » 03 Jun 2011, 09:44

leledumbo wrote:Betul sekali, kecuali semua unit yang dipakai juga didistribusikan dalam bentuk DLL, maka dalam setiap DLL akan terdapat kopian dari unit2 yang dipakai elemennya (variabel, fungsi, kelas, dll) sehingga akan menambah ukuran final executable.

jika semua unit standard (Forms, StdCtrls, dll) yang dipakai juga didistribusikan dalam bentuk DLL, dan unit form memanggilnya melalui function dell, jika ini memungkinkan, apakah ini bermakna.. pada dll unit standard, harus terdapat function bertipe class yang mengembalikan nilai berupa object? Jika memang demikian, bisakah mas lele memberikan contoh sederhana, misalkan function dll yang mengembalikan nilai object beripe class TButton misalnya?
mambamaestro
Member
 
Posts: 156
Joined: 06 May 2010, 14:14
Location: Surabaya

RE: Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby D.E » 03 Jun 2011, 21:36

mambamaestro wrote:
leledumbo wrote:Betul sekali, kecuali semua unit yang dipakai juga didistribusikan dalam bentuk DLL, maka dalam setiap DLL akan terdapat kopian dari unit2 yang dipakai elemennya (variabel, fungsi, kelas, dll) sehingga akan menambah ukuran final executable.

jika semua unit standard (Forms, StdCtrls, dll) yang dipakai juga didistribusikan dalam bentuk DLL, dan unit form memanggilnya melalui function dell, jika ini memungkinkan, apakah ini bermakna.. pada dll unit standard, harus terdapat function bertipe class yang mengembalikan nilai berupa object? Jika memang demikian, bisakah mas lele memberikan contoh sederhana, misalkan function dll yang mengembalikan nilai object beripe class TButton misalnya?


Untuk itulah BPL ditujukan. Gunakan BPL, masalah Anda selesai. :)
:idea: Dude, if you don't understand the basics and just want to get someone else write the code for you, it means you really shouldn't study computer science. Find different field!
User avatar
D.E
Senior Member
 
Posts: 638
Joined: 04 May 2010, 18:12

RE: Kenapa dengan DLL ukuran aplikasi tidak kecil?

Postby leledumbo » 05 Jun 2011, 15:07

Untuk itulah BPL ditujukan. Gunakan BPL, masalah Anda selesai.

Ato ppl (FPC). DLL standard gak bisa ngembaliin object (limitasi format DLL).
leledumbo
Senior Member
 
Posts: 262
Joined: 24 May 2010, 15:58


Who is online

Users browsing this forum: No registered users and 1 guest

cron