Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ShrinkMap - Peta Serentak Berprestasi Tinggi dengan Pengurusan Memori Automatik untuk Go

ShrinkMap - Peta Serentak Berprestasi Tinggi dengan Pengurusan Memori Automatik untuk Go

Barbara Streisand
Barbara Streisandasal
2024-11-03 21:05:03151semak imbas

ShrinkMap - A High-Performance Concurrent Map with Automatic Memory Management for Go

ShrinkMap - Peta Serentak Berprestasi Tinggi dengan Pengurusan Memori Automatik untuk Go

Hello Gophers! ?

Saya teruja untuk berkongsi ShrinkMap, pelaksanaan peta serentak baharu untuk Go yang memfokuskan pada pengurusan dan prestasi memori automatik.

https://github.com/jongyunha/shrinkmap/

Apakah ShrinkMap?

ShrinkMap ialah pelaksanaan peta selamat benang yang mengurus memori secara automatik dengan membersihkan entri yang tidak digunakan sambil mengekalkan prestasi tinggi untuk operasi serentak. Ia direka bentuk untuk menjadi pengganti drop-in untuk penyegerakan. Peta apabila anda memerlukan kecekapan memori yang lebih baik.

Ciri-ciri Utama

  • Pengurusan Memori Automatik: Mengalih keluar masukan yang tidak digunakan secara automatik untuk mengelakkan kebocoran memori
  • Selamat Benang: Operasi selamat serentak sepenuhnya dengan perbalahan kunci yang minimum
  • Prestasi Tinggi: Dioptimumkan untuk kedua-dua operasi baca dan tulis
  • Jenis-Selamat: Pelaksanaan generik sepenuhnya (Pergi 1.18 )
  • API Mudah: Antara muka biasa serupa dengan penyegerakan.Peta

Contoh Pantas

package main

import (
    "fmt"
    "github.com/jongyunha/shrinkmap"
)

func main() {
    // Create a new map
    sm := shrinkmap.New[string, int]()

    // Store values
    sm.Store("counter", 1)

    // Load values
    if val, ok := sm.Load("counter"); ok {
        fmt.Printf("Value: %d\n", val)
    }
}

Mengapa ShrinkMap?

Walaupun penyegerakan.Peta bagus untuk banyak kes penggunaan, terdapat senario di mana pengurusan memori menjadi penting:

  • Aplikasi yang berjalan lama dengan pasangan nilai kunci dinamik
  • Sistem dengan kekangan ingatan
  • Aplikasi dengan churn tinggi dalam entri peta
  • Kes di mana pembersihan manual terdedah kepada ralat atau tidak praktikal

Status Projek

  • Repositori GitHub: https://github.com/jongyunha/shrinkmap
  • Lesen: MIT
  • Versi Go: 1.18

Mencari Maklum Balas

Saya ingin mendengar pendapat dan maklum balas anda tentang:

  1. Pendekatan keseluruhan untuk pengurusan ingatan
  2. Reka bentuk dan kebolehgunaan API
  3. Prestasi dalam senario dunia sebenar
  4. Ciri tambahan yang anda ingin lihat

Menyumbang

Projek ini dibuka untuk sumbangan! Sama ada laporan pepijat, permintaan ciri atau sumbangan kod, semuanya dialu-alukan.

Jangan ragu untuk:

  • Bintangkan repositori jika anda rasa ia berguna
  • Isu terbuka untuk pepijat atau permintaan ciri
  • Serahkan PR untuk penambahbaikan
  • Kongsi kes penggunaan dan maklum balas anda

Mengharap maklum balas dan cadangan anda!

Atas ialah kandungan terperinci ShrinkMap - Peta Serentak Berprestasi Tinggi dengan Pengurusan Memori Automatik untuk Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn