Perbedaan antara MMAP dan Malloc
- 3757
- 810
- Ricky Huels
MMAP vs Malloc
Ada memori dinamis dalam C dan ini menunjuk ke alokasi memori dalam bahasa pemrograman C melalui serangkaian fungsi yang ada di C Standard Library C. Salah satunya adalah malloc, yang mengacu pada alokasi memori. Di sistem UNIX ada MMAP, yang mengacu pada sistem memori memori yang hadir dengan I/O uniknya sendiri. Kedua (MMAP dan Malloc) ini akan pada nilai nominal melakukan fungsi yang sama tetapi pengawasan lebih lanjut mengungkapkan beberapa perbedaan. Perbedaan -perbedaan ini, yang timbul dari fungsionalitas, diuraikan di bawah ini.
Perbedaan
Pertama, penting untuk menetapkan apakah ada bukti yang menunjukkan bahwa ada mencekik memori yang tersedia yang tersedia. Ini dilakukan melalui pengukuran kinerja program terhadap manajemen memori .
Antarmuka alokasi memori utama adalah malloc. Ini adalah yang terbesar di perpustakaan C. Bagian dari kode manajemen yang terkandung di dalamnya adalah MMAP. Saat malloc berjalan, ia mengumpulkan semua fasilitas sistem yang tersedia. Fasilitas sistem tambahan dapat dimobilisasi melalui kernel, yang merupakan salah satu strategi manajemen memori yang digunakan sistem untuk memastikan bahwa ada alokasi memori yang memuaskan. Prosesnya tidak mudah, dan telah dibuat menjadi rumit karena satu -satunya alasan mencegah orang membuat program sederhana yang dapat mengacaukan alokasi memori dan karenanya menciptakan kinerja yang buruk.
'MMAP' di sisi lain adalah panggilan sistem yang mengambil biaya dan meminta kernel untuk menemukan wilayah yang tidak digunakan dan berdekatan dalam alamat aplikasi yang cukup besar untuk memungkinkan pemetaan beberapa halaman memori. Ada juga penciptaan struktur manajemen memori virtual yang pada dasarnya tidak dapat menghasilkan segfault.
Malloc umumnya berfungsi di sebagian besar proses manajemen memori. Jika program ini membutuhkan memori tambahan, ini dipinjam dari OS. MMAP di sisi lain memanfaatkan saklar konteks yang dikonversi menjadi tanah kernel.
Malloc paling cocok untuk mengalokasikan memori dalam aplikasi apa pun yang berjalan pada sistem sebagai lawan dari penggunaan MMAP. Inilah yang harus terjadi secara default, selain dalam kasus khusus ketika diizinkan.
MMAP dapat digunakan untuk mempercepat respons yang diberikan oleh aplikasi. Namun ini tidak disarankan karena akhirnya mengorbankan beberapa byte ke halaman sehingga aplikasi dapat berjalan dengan lancar. Meskipun konten data mungkin tampak kecil pada awalnya, mengekstrapolasi ketika banyak aplikasi ingin berjalan pada dasarnya dapat memperlambat sistem lebih jauh.
Setelah mengukur kinerja dan penggunaan sumber daya, evaluasi menyeluruh penggunaan data oleh semua aplikasi yang berjalan pada sistem harus dilakukan. Jika masa hidup aplikasi yang berjalan dapat ditunjukkan, itu bisa menjadi lebih baik.
Penggunaan MMAP untuk mengalokasikan memori hadir dengan kerugian bahwa alokasi dan dealasi data dalam potongannya mahal. Ini karena data dibagi menjadi banyak area, dan juga menyangkal MMAP dari membuat panggilan sistem.
MMAP menguntungkan daripada malloc karena memori yang digunakan oleh MMAP segera dikembalikan ke OS. Memori yang digunakan oleh malloc tidak pernah dikembalikan kecuali ada istirahat segmen data. Memori ini secara khusus terus digunakan kembali.
Ringkasan
'Malloc' adalah singkatan dari Point Alokasi Memori Utama
Sistem MMAP memanggil dan meminta kernel untuk menemukan daerah yang tidak digunakan dalam alamat aplikasi yang dapat mengakomodasi pemetaan beberapa halaman memori
MMAP tidak disarankan untuk mengalokasikan memori karena membagi memori yang tersedia dan tidak dapat membuat panggilan sistem
Manfaat MMAP over Malloc adalah ketersediaan memori, yang bertentangan dengan memori malloc, yang digunakan kembali.