Memory issue when joining ranges in a for-loop
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza con el reproducer proporcionado y lee boost/range/join.hpp para rastrear cómo las uniones repetidas conservan sus entradas. Confirma el comportamiento iterando el rango del ejemplo; el trabajo estará hecho cuando el mismo caso de uso de aplanamiento se complete sin que el OOMKiller termine el proceso.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We are facing a memory issue (process is killed by the OOMKiller) when we join ranges inside a for loop. The idea here, is to flatten a list of ranges before returning the new range.
#include <vector>
#include <boost/range/any_range.hpp>
#include <boost/range/join.hpp>
struct A {
};
using Range = typename boost::any_range<A, boost::forward_traversal_tag, A&, std::ptrdiff_t>;
struct B {
std::vector<A> v{10, A()};
};
struct C {
std::vector<B> v{30, B()};
Range getAll() const {
Range all;
for (const auto& b : v) {
all = boost::range::join(all, b.v);
}
return all;
}
}
int main(int argc, char** argv) {
C c;
for (const A& a : c.getAll()) {
// Do something with a
}
return 0;
}
- Lenguaje dominante
- C++
- Estrellas
- 45
- Forks
- 104
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 boostorg/range
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
-
Bad is_sorted docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
Todos los issues de boostorg/range
Issues similares
-
(S1 - Need confirmation)
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
CleverRaven/Cataclysm-DDA#89212 ·
Los mantenedores suelen responder en 1 día
-
Status: Needs confirmation Status: Needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
ai_p2 comp-dictionary
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/ClickHouse#127261 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA-Omniverse/usd-brep#23 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
qbittorrent/qBittorrent#25121 ·
Los mantenedores suelen responder en 2 días