Archive

Archive for the ‘Hacking Delphi’ Category

New BDS Community Welcome Page

April 17, 2006 Leave a comment

Today, I updated my old WelcomePage with new one from CodeCentral. The UI had different looks and feels. So I’ve added some links to the RSSFeed in order to retrieve contents from my favourites addresses. btw You can download it from CodeCentral: http://cc.borland.com/item.aspx?id=23971
here my old WelcomePage (click to enlarge)

My Old WelcomePage

and here my new one (click to enlarge):

My New WelcomePage

Categories: Delphi, Hacking Delphi

Meningkatkan Proses Startup IDE

December 21, 2005 5 comments

Sudah menjadi pengetahuan umum, proses loading Delphi 2005 terkenal cukup lama, bahkan boleh dibilang ‘membosankan’ bagi sebagian orang, selain itu Delphi 2005 juga dikenal sangat berat dan membutuhkan banyak resource CPU dan memori. Nah pada kesempatan ini, saya akan coba memaparkan beberapa langkah untuk merampingkan Delphi 2005 sehingga proses loading menjadi lebih cepat dan tentu saja lebih menghemat resource CPU dan memori. Adapun versi Delphi 2005 yang saya gunakan adalah versi Architect. Untuk versi lainnya, silahkan Anda sesuaikan sendiri.

Mengapa sangat Lambat ?

Sebelum melakukan beberapa langkah optimalisasi, terlebih dahulu harus diketahui penyebab mengapa proses starup membutuhkan waktu yang tidak sedikit. Ada beberapa penyebab utama yaitu:

Multi-Languages IDE

IDE Delphi 2005 merupakan gabungan dari 3 bahasa pemrograman, yaitu Delphi untuk platform Win32, Delphi untuk platform Microsoft .NET dan C# untuk platform Microsoft .NET. Faktor penggabungan inilah yang menyumbang banyak pemborosan resource. Dapat Anda simak pada gambar 1, semua bahasa pemrograman ikut di-load pada saat startup.

Memory Manager yang Sudah Kuno

Sejak pertama kali diluncurkan hingga Delphi 2005, Memory Manager internal yang digunakan masih tetap sama yaitu BorlandMM atau DelphiMM. Memory Manager memegang peranan yang sangat penting dalam pengaturan memori bagi setiap aplikasi. Memory Manager mengatur pembagian resource memori suatu aplikasi secara dinamis dan efisien. Tanpa Memory Manager, sebuah aplikasi tidak dapat membuat list, menyimpan dan menampilkan data dengan ukuran yang besar misalnya.

Walaupun telah mengalami beberapa perbaikan namun kinerja Memory Manager internal dari Borland masih kurang memuaskan, terlebih dengan munculnya Memory Manager dari pihak ketiga yaitu FastMM yang lebih stabil, cepat dan gratis.

Rutin Internal yang Kurang Efisien

Pada saat proses startup, IDE akan me-load unit yang telah dipilih, namun sayangnya proses load ini didahulu dengan pengecekan terhadap status unit tersebut, apakah sudah di-load apa belom, untuk mencegah terjadinya duplikasi unit yang di-load. Proses pengecekan ini dilakukan dengan iterasi terhadap semua unit yang telah di-load sebelumnya, sehingga terjadi proses pengecekan yang berulang – ulang.

Versi (SKU) Delphi

Versi SKU Delphi yang digunakan ikut andil dalam menyukseskan lambatnya proses startup. Hal ini terjadi karena setiap versi membawa kelengkapan fitur yang belum tentu sama. Kelengkapan fitur versi personal tentu saja berbeda dengan versi Architect. Semakin tinggi versi SKU yang digunakan maka semakin banyak fitur kelengkapan yang disertakan, misalnya Enterprise Core Objects (ECO), integrasi dengan produk Borland StarTeam, Borland Together, Caliber IDE dan sebagainya. Semakin banyak fitur yang di-load maka semakin memboroskan resource.

VCL yang Aktif

Secara default, IDE akan me-load semua Visual Component Library (VCL) yang telah ter-instal pada saat startup, baik VCL internal Delphi maupun VCL dari pihak ketiga. Semakin banyak komponen yang di-instal, maka semakin besar pula resource yang dibutuhkan. Terlebih apabila Anda menginstal komponen sejenis suite, yaitu paket komponen yang menyertakan banyak sekali kontrol visual seperti JEDI, RxLib, Orpheus, LMDTools, Eldos, InfoPower, SDLSuite dan sebagainya.

Loading komponen pada saat startup
Gambar 1 : Loading komponen pada saat startup

Perlengkapan yang Harus Disiapkan

Setelah mengetahui penyebab lambatnya proses startup, maka kini Anda harus menyiapkan beberapa tool untuk mendukung optimalisasi proses startup, yaitu:

  • Delphi Update 1, Delphi Update 2 dan Delphi Update 3
  • Update Delphi secara resmi yang dikeluarkan oleh Borland. Anda dapat men-download-nya dari situs Borland, tentunya dengan user account pengguna Delphi 2005 yang telah terdaftar.

  • Delphi Unofficial Update
  • Update Delphi tidak resmi yang dikeluarkan oleh Allen Bauer, salah satu arsitek di Delphi. Anda dapat men-download-nya pada situs blog-nya di http://blogs.borland.com/abauer atau langsung ke alamat:
    http://homepages.borland.com/abauer/vclide90.zip
    http://homepages.borland.com/abauer/coreide90.zip
    http://homepages.borland.com/abauer/boreditu.zip

    Selengkapnya mengenai file yang diupdate adalah:
    boreditu.dll
    Borland.Studio.Vcl.Design.dll
    coreide90.bpl
    coreid90.jdbg
    designide90.bpl
    designide90.jdbg
    vclide90.bpl
    vclide90.jdbg

  • Delphi Patch Installer
  • Aplikasi kecil ini dibuat oleh Andreas Hausladen digunakan untuk mempermudah instalasi unofficial update. Anda dapat men-download-nya pada situsnya di http://andy.jgknet.de/misc/D2k5PatchInstaller.zip

  • FastMM 4
  • Fast Memory Manager merupakan memory manager alternative yang digunakan untuk menggantikan memory manager internal dari Borland. Anda dapat men-donwload-nya pada http://fastmm.sourceforge.net

  • PatchRTL
  • Digunakan untuk memangkas rutin internal Delphi yang kurang effisien sehingga dapat memangkas loading time Delphi Anda. Anda dapat men-download-nya pada bagian Example (CodeCentral) pada situs Borland.

  • Delphi Setting Manager
  • Aplikasi kecil ini dibuat oleh Erwin Saputra, digunakan untuk mengatur personalisasi Delphi Anda dengan menyeleksi fitur yang ikut di-load pada saat startup Delphi. Anda dapat men-download-nya pada blog-nya di http://blogs.slcdug.org/esaputra atau di http://www.codeline.net

Hacking Time

Nah setelah mengetahui penyebab dan perlengkapan yang dibutuhkan, kini saatnya beraksi. Its hacking time . Langkah – langkah berikut mutlak Anda lakukan dengan tertib dan benar agar Anda memperoleh hasil yang maksimal.

Tahap pertama adalah Anda harus meng-upgrade Delphi Anda dengan menggunakan update resmi yang dikeluarkan oleh Borland. Anda harus melakukannya dengan urut, dari Update 1, Update 2 dan terakhir Update 3.

Sekedar informasi, Anda dapat melihat versi Delphi sebelum di-upgrade melalui menu Help -> About seperti terlihat pada gambar berikut:

Versi Delphi 2005 tanpa upgrade
Gambar 2 : Versi Delphi 2005 tanpa upgrade

Upgrade dengan Official Update 1

Instalasi Update 1
Gambar 3: Instalasi Update 1

Jalankan file setup untuk update 1 seperti Anda meng-instal aplikasi lainnya. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 1
Gambar 4: Informasi versi Delphi 2005 setelah Update 1

Pada registry, Anda dapat memeriksa pada key HKLM\Software\Borland\BDS\3.0. Pada entry ProductVersion, pastikan nilainya 9.0.1, kemudian entry RegMergeLevel bernilai 1 dan entry UpdatePackInstalled bernilai 1.

Informasi versi Delphi 2005 setelah Update 1 pada Registry
Gambar 5: Informasi versi Delphi 2005 setelah Update 1 pada Registry

Upgrade dengan Official Update 2

Setelah instalasi Update 1 selesai, maka lanjutkanlah dengan instalasi Update 2. Proses instalasi sama seperti instalasi Update 1. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 2
Gambar 6: Informasi versi Delphi 2005 setelah Update 2

Pada entry ProductVersion, pastikan nilainya 9.0.2, kemudian entry RegMergeLevel bernilai 2 dan entry UpdatePackInstalled bernilai 2.

Informasi versi Delphi 2005 setelah Update 2 pada Registry
Gambar 7: Informasi versi Delphi 2005 setelah Update 2 pada Registry

Upgrade dengan Official Update 3

Setelah instalasi Update 2 selesai, maka lanjutkanlah dengan instalasi Update 3. Proses instalasi sama seperti instalasi Update 1 dan 2. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.

Informasi versi Delphi 2005 setelah Update 3
Gambar 8: Informasi versi Delphi 2005 setelah Update 3

Pada entry ProductVersion, pastikan nilainya 9.0.3, kemudian entry RegMergeLevel bernilai 3 dan entry UpdatePackInstalled bernilai 3.

Informasi versi Delphi 2005 setelah Update 3 pada Registry
Gambar 9: Informasi versi Delphi 2005 setelah Update 3 pada Registry

Upgrade dengan Unofficial Update

Anda dapat melakukan upgrade Unofficial Update dengan dua cara, yaitu manual dan otomatis. Sebenarnya cara otomatis tidak sepenuhnya otomatis, ada beberapa langkah tambahan yang harus Anda lakukan untuk menyempurnakan upgrade, namun setidaknya dapat menghemat waktu Anda. Di sini saya akan menggunakan cara manual.

Jika Delphi 2005 masih berjalan, maka Delphi 2005 terlebih dahulu harus ditutup. Ekstrak file – file yang terdapat pada paket unofficial update ke folder bin pada folder Delphi 2005, pada kebanyakan kasus terletak pada C:\Program Files\Borland\BDS\3.0\Bin. Kemudian salin precompiled copy BorlandMM.dll dari arsip FastMM (FastMM427\Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance) ke folder bin Delphi 2005.

Pada command prompt, arahkan prompt ke folder .NET SDK Anda, biasanya di C:\Program Files\Microsoft.NET\SDK\v1.1\Bin dan jalankan perintah di bawah ini:

sn -Vr Borland.Studio.Vcl.Design.dll

Sesuaikan path pada file Borland.Studio.Vcl.Design.dll sesuai dengan path Anda. Untuk lebih jelasnya simak gambar berikut:

Update assembly untuk platform .NET
Gambar10: Update assembly untuk platform .NET

Untuk memeriksa apakah upgrade ke unofiicial update berjalan dengan baik, Anda dapat memeriksanya melalui jendela About. Perhatikan bagian bawah jendela About, terdapat teks berwarna merah dengan label ‘Confidential Pre-release version’.

Informasi versi Delphi 2005 setelah unofficial update
Gambar 11: Informasi versi Delphi 2005 setelah unofficial update

Pangkas Rutin Internal

Hack berikutnya adalah memangkas rutin internal yang kurang efisien dengan menggunakan aplikasi kecil PatchRTL.exe. Seperti biasa, tutup Delphi 2005 Anda. Salin file RTL90.BPL dari folder system windows ke folder bin Delphi 2005. kemudian pada command prompt, jalankan perintah:

PatchRTL RTL90.bpl

Menggunakan PatchRTL
Gambar 12: Menggunakan PatchRTL

Personalisasi IDE Delphi

Hack berikutnya adalah melakukan personalisasi IDE Delphi 2005. personaliasi fitur IDE Delphi dan personalisasi paket komponen.

Personalisasi Fitur IDE

Personalisasi fitur IDE adalah memilih fitur – fitur IDE hanya yang dibutuhkan saja, dengan demikian fitur yang tidak dibutuhkan tidak ikut di-load sehingga dapat menghemat loading time dan resource memori. Untuk melakukannya, gunakan tool Delphi Setting Manager.

Tampilan muka Delphi Setting Manager
Gambar 13: Tampilan muka Delphi Setting Manager

Untuk membuat personalisasi baru berikut langkahnya:

-Pilih tab Delphi 2005;
-Klik tombol New;

Tampilan pembuatan personalisasi
Gambar 14: Tampilan pembuatan personalisasi

-Masukkan nama personalisasi pada kolom Setting Name;
-Pilih fitur yang ingin di-load pada saat startup pada kolom Templates dengan memberikan tanda cek pada kotak masing – masing fitur;
-Klik Ok untuk menyimpan personalisasi;

Personalisasi tersimpan
Gambar 15: Personalisasi tersimpan

Untuk menerapkan personalisasi yang telah dibuat, Anda harus menjalan Delphi melalui Delphi Setting Manager dengan meng-klik tombol Run Delphi. Jika Anda menjalankan Delphi langsung dari Start Menu, maka personalisasi yang telah dibuat tidak akan dijalankan.

Perhatikan pada saat proses startup Delphi yang telah dipersonalisasi dan bandingkan dengan proses startup Delphi tanpa personalisasi, Anda akan memperoleh perbedaan dalam hal status loading, kecepatan proses loading dan struktur menu pada IDE.

Hanya fitur yang diperlukan saja yang di-load
Gambar 16: Hanya fitur yang diperlukan saja yang di-load

Personalisasi Paket Komponen

Hack selanjutnya adalah memilih paket komponen yang di-load pada saat startup. Untuk itu Anda harus menyimpan setting-nya pada Default Options. Langkah – langkahnya adalah sebagai berikut:

-Pada IDE Delphi, tutup semua project yang ada (File -> Close All);
-Pilih menu Project -> Default Options;
-Pilih personalisasi platform yang Anda inginkan, untuk win32 pilih Delphi for Win32, untuk .NET pilih Delphi for .NET;
-Pada jendela Default Project Options, pilih Packages;
-Perhatikan kolom Design packages, di dalam nya termuat paket – paket yang di-load pada IDE;
Daftar komponen yang di-load pada IDE
Gambar 17: Daftar komponen yang di-load pada IDE

-Kemudian pilih hanya komponen yang sering Anda gunakan dengan cara memberikan tanda cek komponen tersebut dan melepas komponen yang jarang Anda gunakan dengan menghilangkan tanda cek pada komponen tersebut;

Pilih hanya paket yang sering Anda gunakan
Gambar 18: Pilih hanya paket yang sering Anda gunakan

-Klik Ok untuk menyimpan perubahan.

Ketika Anda membuat project baru, maka package yg di-load adalah setting default yang telah Anda tetapkan sebelumnya. Nah ketika Anda membutuhkan komponen yang tidak ada pada daftar, maka Anda tinggal mengaktifkan package yang sesuai melalui jendela Package pada menu Project -> Option.

Anda juga bisa memodifikasi package option pada project yang telah Anda buat, jadi Anda dapat mengurangi load time project Anda. Jangan lupa untuk menyimpan konfigurasi yang telah Anda ubah sebelumnya pada file project Anda (file .dpr atau .bdsproj atau .bdsgroup).

Penutup

Dengan menerapkan semua teknik – teknik yang telah dipaparkan di atas, maka proses startup IDE dapat dipangkas secara signifikan. Pada sistem yang saya gunakan, saya dapat mereduksi proses load time hingga kurang dari setengah menit saja. Semoga juga berlaku bagi Anda. Sampai jumpa di Hacking Delphi edisi lainnya.

Categories: Delphi, Hacking Delphi