Leverage ALTREP class for replicated vectors
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- r
- Área
- data, performance
Línea de trabajo
Comienza localizando la ruta de replicación de vecvec y leyendo cómo se representan los índices posicionales; después, revisa las interfaces de la clase ALTREP de R. Usa el ejemplo rep(1:1000, 1e6) del issue como caso objetivo; se considera terminado cuando el índice repetido puede representarse sin materializar todas las posiciones y preservando el comportamiento de vecvec.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When replicating vecvec objects, the positional index can be more efficiently represented by storing the number of replicates.
z <- rep(1, 1e6)
pryr::object_size(z)
#> 8.00 MB
Created on 2026-05-27 with reprex v2.1.1
an 'alt rep' ALTREP class 😉 would make vecvec substantially more efficient within data analysis workflows, since the positional index of copies is often replications of regular ALTREP sequences.
For example, in mixtime you might have 1e6 time series for the exact same 1000 time points, for a total of 1e9 time points. The vecvec positions for this scenario would be rep(1:1000, 1e6)), which cannot currently be represented with ALTREP (requiring 8GB of memory!). This could (hopefully) be represented in just a few bytes with an ALTREP sequence for 1:1000, which is referenced in an ALTREP replication that additionally stores the number of replicates, 1e6.
- Lenguaje dominante
- R
- Estrellas
- 4
- Forks
- 1
- Merge medio
- 19 h 32 min
- PR fusionados (30 d)
- 1
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 mitchelloharawild/vecvec
-
Multi-length valuesAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
mitchelloharawild/vecvec#24 ·
-
Add defragmentation functionAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
mitchelloharawild/vecvec#18 ·
-
A getter/setter method for @xAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
mitchelloharawild/vecvec#17 ·
-
Use ALTREP safe operationsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
mitchelloharawild/vecvec#11 · 5 comentarios ·
Todos los issues de mitchelloharawild/vecvec
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
r-lib/rig#483 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
archaeothommy/ASTR#62 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
ImpactMojo/ImpactMojo#1286 ·
Los mantenedores suelen responder en 1 día