`dup`ing an Identity Hash/Set is faster than creating a new one
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 52/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- ruby
- Ambito
- performance
Direzione di ricerca
Inizia individuando il formato esistente delle voci di benchmark o idiom del repository, poiché non è specificato alcun file di destinazione. Usa gli esempi Benchmark.ips forniti per identity Hash e Set e considera completato il lavoro quando il repository registra il confronto e il relativo risultato di allocazione o prestazioni in modo coerente con le altre voci.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
It's one less allocation, too :)
| YJIT off | YJIT on | |
|---|---|---|
Set.new.compare_by_identity |
2.571M | 4.260M |
S.dup |
3.014M | 4.999M |
| ∆ | 1.17x | 1.17x |
| YJIT off | YJIT on | |
|---|---|---|
Hash.new.compare_by_identity |
5.643M | 8.208M |
H.dup |
5.988M | 9.014M |
| ∆ | 1.06x | 1.09x |
S = Set.new.compare_by_identity.freeze
H = Hash.new.compare_by_identity.freeze
Benchmark.ips do |x|
x.config(time: 10)
x.report(".new.compare_by_identity") do |times|
i = 0
while (i += 1) <= times
S.dup
end
end
x.report(".dup ") do |times|
i = 0
while (i += 1) <= times
Set.new.compare_by_identity
end
end
x.compare!
end
Benchmark.ips do |x|
x.config(time: 10)
x.report(".new.compare_by_identity") do |times|
i = 0
while (i += 1) <= times
H.dup
end
end
x.report(".dup ") do |times|
i = 0
while (i += 1) <= times
Hash.new.compare_by_identity
end
end
x.compare!
end
- Lingua principale
- Ruby
- Stelle
- 5.7k
- Fork
- 370
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
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 fastruby/fast-ruby
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 32/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
Tutte le issue di fastruby/fast-ruby
Issue simili
-
SyncEm always forwards a dummy block, so wrapped methods lose their no-block/Enumerator behavior Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
dependabot
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
githubnext/gh-aw-cao#13349 ·
-
user-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Kong/developer.konghq.com#7316 ·