Fragmentasi memori terjadi ketika sebuah sistem berisi memori yang secara teknis bebas tetapi komputer tidak dapat menggunakannya. Pengalokasi memori, yang memberikan memori yang dibutuhkan untuk berbagai tugas, membagi dan mengalokasikan blok memori seperti yang dibutuhkan oleh program; ketika data dihapus, lebih banyak blok memori dibebaskan dalam sistem dan ditambahkan kembali ke kumpulan memori yang tersedia. Ketika tindakan pengalokasi atau pemulihan segmen memori yang ditempati sebelumnya mengarah ke blok atau bahkan byte memori yang terlalu kecil atau terlalu terisolasi untuk digunakan oleh kumpulan memori, fragmentasi telah terjadi. Fragmentasi dapat mengambil gigitan signifikan dari memori bebas komputer dan sering menjadi penyebab frustasi pesan kesalahan kehabisan memori.
Fragmentasi Internal
Fragmentasi internal terjadi ketika pengalokasi memori meninggalkan ruang ekstra kosong di dalam blok memori yang telah dialokasikan untuk klien. Ini biasanya terjadi karena desain prosesor menetapkan bahwa memori harus dipotong menjadi blok-blok dengan ukuran tertentu -- misalnya, blok-blok mungkin harus dibagi secara merata dengan empat, delapan atau 16 byte. Ketika ini terjadi, klien yang membutuhkan 57 byte memori, misalnya, dapat dialokasikan blok yang berisi 60 byte, atau bahkan 64. Byte ekstra yang tidak perlu klien sia-siakan, dan seiring waktu potongan kecil ini memori yang tidak digunakan dapat menumpuk dan membuat memori dalam jumlah besar yang tidak dapat digunakan oleh pengalokasi. Karena semua byte yang tidak berguna ini berada di dalam blok memori yang lebih besar, fragmentasi dianggap internal.
Fragmentasi Eksternal
Fragmentasi eksternal terjadi ketika pengalokasi memori meninggalkan bagian blok memori yang tidak digunakan di antara bagian memori yang dialokasikan. Misalnya, jika beberapa blok memori dialokasikan dalam jalur kontinu tetapi salah satu blok tengah di jalur tersebut dibebaskan (mungkin karena proses yang menggunakan blok memori tersebut berhenti berjalan), blok bebas akan terfragmentasi. Blok tersebut masih tersedia untuk digunakan oleh pengalokasi nanti jika ada kebutuhan memori yang sesuai dengan blok itu, tetapi blok tersebut sekarang tidak dapat digunakan untuk kebutuhan memori yang lebih besar. Itu tidak dapat disatukan kembali dengan total memori bebas yang tersedia untuk sistem, karena total memori harus berdekatan agar dapat digunakan untuk tugas yang lebih besar. Dengan cara ini, seluruh bagian memori bebas dapat berakhir terisolasi dari keseluruhan yang seringkali terlalu kecil untuk penggunaan yang signifikan, yang menciptakan pengurangan keseluruhan memori bebas yang seiring waktu dapat menyebabkan kurangnya memori yang tersedia untuk tugas-tugas utama.
Fragmentasi Dapat Berarti Masalah Besar untuk Sistem
Fragmentasi dapat menjadi masalah karena menumpuk seiring waktu, menciptakan blok memori yang kecil dan tidak berguna, serta membatasi jumlah memori bebas yang tersedia di komputer. Seiring perkembangannya, fragmentasi dapat menyebabkan kinerja sistem menjadi lambat dan lamban dalam jangka pendek; dalam jangka panjang, fragmentasi dapat memperpendek umur komputer atau server rata-rata 30 persen. Dari dua jenis fragmentasi, internal lebih dapat diprediksi daripada eksternal karena jumlah ruang yang terbuang ditentukan oleh parameter pengalokasi memori (seberapa besar blok yang dialokasikan harus), yang merupakan konstanta. Selain itu, jumlah keseluruhan memori yang hilang karena fragmentasi internal biasanya lebih sedikit daripada yang hilang karena fragmentasi eksternal, meskipun secara bertahap dapat terakumulasi. Fragmentasi eksternal, di sisi lain, lebih sulit untuk diprediksi karena dalam banyak kasus beberapa proses secara teratur mulai dan berhenti dalam sistem dan blok memori yang digunakan untuk berbagai jangka waktu dibebaskan dalam urutan yang berbeda dari yang diisi, meninggalkan celah dalam memori yang tersedia.
Memerangi Fragmentasi untuk Peningkatan Kinerja
Ketika datang untuk mengoptimalkan RAM, satu-satunya solusi yang berguna adalah me-reboot sistem, yang menghapus banyak memori yang digunakan oleh program yang berjalan lama dan memberi komputer awal baru untuk mengalokasikan memori. Alat yang mengklaim untuk mendefrag RAM adalah menyesatkan, karena manajer memori virtual di komputer modern bekerja untuk mengoptimalkan penggunaan RAM secara konstan. Namun, untuk hard drive Anda, beberapa defragmentasi mungkin diperlukan untuk memaksimalkan kinerja sistem. Jika Anda menjalankan Windows Vista atau versi yang lebih baru, sistem secara otomatis mendefrag ruang hard drive Anda secara berkala untuk Anda. Jika Anda melihat kinerja sistem yang lebih lambat dan ingin menjalankan sendiri defragmenter, Anda dapat memulai proses secara manual dengan mengklik "Mulai", lalu "Semua Program | Aksesori | Alat Sistem | Disk Defragmenter." Terakhir, klik "Defragmentasi Sekarang." Prosesnya dapat berlangsung dari menit hingga jam tergantung seberapa terfragmentasinya hard disk Anda, tetapi kabar baiknya adalah Anda dapat menggunakan komputer saat Disk Defragmenter sedang berjalan.
Masalah fragmentasi tidak berlaku untuk semua sistem operasi secara merata. Untuk komputer Mac, defragmenting tidak diperlukan karena Mac OS X secara otomatis mengoptimalkan ruang disk saat file ditulis. Mesin Linux juga tidak memerlukan defragmentasi biasa karena mereka menetapkan memori dalam format yang tersebar, bukan format yang berdekatan, memberikan ruang file untuk diperluas. Pengguna Linux yang melihat penurunan kinerja sistem harus mempertimbangkan untuk meningkatkan ukuran hard disk mereka. Terakhir, Anda tidak boleh mendefrag drive penyimpanan solid state (seperti drive USB), karena defragmentasi sebenarnya dapat mempersingkat masa pakai solid state drive yang dapat digunakan.