adding a small integer to a `BigInt` with `operate!` allocates
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia riproducendo l'esempio del Julia REPL con MutableArithmetics e ispeziona il dispatch utilizzato da MA.operate!(+, x, 1) per BigInt. Confrontalo con i punti di ingresso menzionati Base.GMP.MPZ.add_si! e add_ui!. Il lavoro è completato quando l'aggiunta di un intero piccolo non esegue più la conversione o l'allocazione non necessaria di BigInt.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Presumably the small integer is being converted to BigInt by mistake. It is possible to add some small ints to a BigInt directly using Base.GMP.MPZ.add_si! (or Base.GMP.MPZ.add_ui!).
julia> using MutableArithmetics: MutableArithmetics as MA
julia> x = BigInt(0)
0
julia> @timev MA.operate!(+, x, 1)
0.086091 seconds (135.80 k allocations: 7.078 MiB, 99.88% compilation time)
elapsed time (ns): 8.6090543e7
gc time (ns): 0
bytes allocated: 7421600
pool allocs: 135768
non-pool GC allocs: 1
malloc() calls: 34
realloc() calls: 1
free() calls: 0
minor collections: 0
full collections: 0
1
julia> @timev MA.operate!(+, x, 1)
0.000022 seconds (2 allocations: 56 bytes)
elapsed time (ns): 21772.0
gc time (ns): 0
bytes allocated: 56
pool allocs: 1
non-pool GC allocs: 0
malloc() calls: 1
free() calls: 0
minor collections: 0
full collections: 0
2
- Lingua principale
- TeX
- Stelle
- 55
- Fork
- 15
- Merge medio
- 19h 44m
- PR unite (30g)
- 9
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jump-dev/MutableArithmetics.jl
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
jump-dev/MutableArithmetics.jl#293 · 8 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
jump-dev/MutableArithmetics.jl#292 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
jump-dev/MutableArithmetics.jl#287 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
jump-dev/MutableArithmetics.jl#253 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 58/100
jump-dev/MutableArithmetics.jl#246 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di jump-dev/MutableArithmetics.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
git-ai-project/git-ai#2433 ·
I maintainer di solito rispondono entro 1 giorno
-
bug raised-by:verifier
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
medici-finance/assay#4008 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
kucherenko/jscpd#1239 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
social-harness/moltzap#1412 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
gracecraft-software/lupin#280 ·
I maintainer di solito rispondono entro 1 giorno