`dup`ing an Identity Hash/Set is faster than creating a new one
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- ruby
- Área
- performance
Línea de trabajo
Empieza por localizar el formato existente de entradas de benchmarks o idioms del repositorio, ya que no se indica ningún archivo de destino. Usa los ejemplos proporcionados de Benchmark.ips para identity Hash y Set, y considera el trabajo completo cuando el repositorio registre la comparación y su resultado de asignación o rendimiento de forma coherente con sus otras entradas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Ruby
- Estrellas
- 5.7k
- Forks
- 370
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fastruby/fast-ruby
-
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Todos los issues de fastruby/fast-ruby
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
simp/pupmod-simp-simp#395 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
simp/pupmod-simp-rsyslog#219 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
simp/pupmod-simp-pupmod#256 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
simp/pupmod-simp-sudo#150 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100