cari

Rumah  >  Soal Jawab  >  teks badan

php - Bagaimana untuk memahami pemecahan memori yang disebutkan dalam pengaturcaraan bahasa C? Mengapa anda perlu mengelak daripada dia sebanyak mungkin?

Bukankah memori secara rawak membaca dan menulis Ia adalah medium fizikal yang berbeza daripada cakera keras mekanikal Jadi mengapa ia menjejaskan prestasi jika terdapat serpihan memori dalam memori? Apakah sebenarnya yang dimaksudkan oleh pemecahan memori ini?

滿天的星座滿天的星座2756 hari yang lalu950

membalas semua(3)saya akan balas

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-24 09:44:23

    Alokasi memori biasanya digunakan pada OS untuk sebahagian besar memori terlebih dahulu, dan kemudian menandakannya sebagai tidak diperuntukkan setiap kali malloc()时标记一小段为已分配,free()bahagian kecil ini diperuntukkan.

    Susunan malloc/free secara amnya adalah sewenang-wenang, jadi selepas berbilang malloc/frees, memori yang diperuntukkan dan tidak diperuntukkan akan silih berganti, seperti 分配1 -- 未分配1 -- 分配2 -- 未分配2, iaitu memori yang tidak diperuntukkan "berpecah" satu demi satu.

    Kelemahan pemecahan ingatan:

    • Pendudukan memori tambahan: Walaupun jumlah keseluruhan memori yang tidak diperuntukkan mencukupi, memori berterusan mungkin masih tidak dipisahkan Dalam kes ini, anda perlu memohon lebih banyak daripada OS

    • Menjejaskan cache: Cache adalah berdasarkan halaman, dan bahagian halaman yang tidak diperuntukkan juga menduduki cache

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-24 09:44:23

    Cara terbaik ialah tidak menggunakan timbunan proses lalai sistem. Sebaliknya, mohon sendiri timbunan memori baharu. Data satu jenis diletakkan dalam timbunan. Ini sesuai untuk kepingan kecil data yang sering diminta dan dikeluarkan.
    Anda juga boleh malloc sekeping data yang besar sendiri dahulu, dan kemudian gunakan kumpulan memori anda sendiri untuk mengurusnya.
    Bagi yang pertama, pengurus fail Windows Explore berguna. Contohnya, struktur pepohon direktori yang dilalui diletakkan dalam timbunan berasingan HeapFree mengeluarkan keseluruhan timbunan pada satu masa, tanpa perlu melepaskan nod daun berulang kali.
    Kedua, sebagai contoh, libjpeg sendiri mempunyai kolam memori khusus.

    balas
    0
  • 为情所困

    为情所困2017-06-24 09:44:23

    • Anda boleh belajar tentang algoritma buddy

    • Ada juga PDF ni

    • Jika anda tidak boleh membukanya, pergi ke atas dinding

    • Saya ingin tahu kod sumber malloc实现就去看看dlmalloc, ia tidak rumit

    balas
    0
  • Batalbalas