php - Bagaimana untuk memahami pemecahan memori yang disebutkan dalam pengaturcaraan bahasa C? Mengapa anda perlu mengelak daripada dia sebanyak mungkin?
滿天的星座
滿天的星座 2017-06-24 09:42:23
0
3
808

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?

滿天的星座
滿天的星座

membalas semua (3)
女神的闺蜜爱上我

Alokasi memori biasanya digunakan pada OS untuk sebahagian besar memori terlebih dahulu, dan kemudian menandakannya sebagai tidak diperuntukkan setiap kalimalloc()时标记一小段为已分配,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

    phpcn_u1582

    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.

      为情所困
      • Anda boleh belajar tentang algoritma buddy

      • Ada juga PDF ni

      • Jika anda tidak boleh membukanya, pergi ke atas dinding

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

        Muat turun terkini
        Lagi>
        kesan web
        Kod sumber laman web
        Bahan laman web
        Templat hujung hadapan
        Tentang kita Penafian Sitemap
        Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!