python / python/cpython

shutil.rmtree can have O(n^2) performance on large dirs

Aperta
#76,634 12 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

3.7 (EOL) stdlib type-feature
Lingua principale
Python
Stelle
77.2k
Fork
36k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

BPO 32453
Nosy @pitrou, @giampaolo, @nh2, @serhiy-storchaka
Files
  • bench_rmtree.py
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = None
    created_at = <Date 2017-12-30.05:15:09.821>
    labels = ['3.7', 'type-feature', 'library']
    title = 'shutil.rmtree can have O(n^2) performance on large dirs'
    updated_at = <Date 2021-10-30.12:33:10.794>
    user = 'https://github.com/nh2'
    

    bugs.python.org fields:

    activity = <Date 2021-10-30.12:33:10.794>
    actor = 'nh2'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Library (Lib)']
    creation = <Date 2017-12-30.05:15:09.821>
    creator = 'nh2'
    dependencies = []
    files = ['47355']
    hgrepos = []
    issue_num = 32453
    keywords = []
    message_count = 12.0
    messages = ['309217', '309227', '309230', '309300', '309303', '309305', '309308', '309317', '309353', '309359', '309367', '405367']
    nosy_count = 4.0
    nosy_names = ['pitrou', 'giampaolo.rodola', 'nh2', 'serhiy.storchaka']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = None
    status = 'open'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue32453'
    versions = ['Python 3.7']
    

    Guida per i contributori

    Apri la guida per i contributori

    Come iniziare

    1. Leggi tutta la issue e poi la guida ai contributi del progetto.
    2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
    3. Fai un fork del repository e lavora su un branch.
    4. Apri una pull request che faccia riferimento al numero della issue.

    Direzione di ricerca

    Inizia con il benchmark bench_rmtree.py menzionato e con l’implementazione di shutil.rmtree nella libreria standard. Esegui il benchmark su directory di grandi dimensioni per riprodurre il problema di scalabilità, quindi verifica che la modifica completata elimini il comportamento O(n²) senza compromettere il comportamento esistente di rmtree.

    Scritto dal modello di indicizzazione a partire dal testo della issue.

    Valutazione

    Stack tecnologico
    python
    Ambito
    operating-systems
    Tipo di issue
    Bug
    Difficoltà
    4/5
    Tempo stimato
    3-5 giorni
    Stato di attività
    Ferma
    Chiarezza
    Abbastanza chiara
    Idoneità per principianti
    35/100

    Ricevi le nuove issue nella tua casella

    Un breve riepilogo di issue GitHub adatte ai principianti.