apache / apache/arrow-java

[Java] Potentially inefficient variable-width vector reallocation

Abierto
#241 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Type: enhancement
Lenguaje dominante
Java
Estrellas
94
Forks
152
Merge medio
3 d 16 h
PR fusionados (30 d)
11

Descripción

In several places in the Java codebase you can see this kind of pattern:
```java

while (vector.getDataBuffer().capacity() < toCapacity) {
vector.reallocDataBuffer();
}
```

In the event that a much larger capacity is requested, this will spuriously make several reallocations (doubling the capacity each time).

It would probably be more efficient to reallocate directly to satisfy the desired capacity.

Coincidentally, there's a `reallocDataBuffer` overload that seems to do just that.

**Reporter**: [Antoine Pitrou](https://issues.apache.org/jira/browse/ARROW-17919) / @pitrou

**Note**: *This issue was originally created as [ARROW-17919](https://issues.apache.org/jira/browse/ARROW-17919). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza localizando los puntos de llamada de Java que iteran sobre vector.getDataBuffer().capacity() y llaman a reallocDataBuffer(); después, inspecciona la sobrecarga de reallocDataBuffer que acepta una capacidad deseada. Actualiza las rutas afectadas para que una capacidad mayor solicitada se satisfaga directamente y verifica que las pruebas de Java pertinentes cubran el comportamiento de realocación.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
performance
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.