es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es más eficiente: una referencia a ArrayBase o a ArrayView?

Estoy mejorando una base de código en Rust que utiliza la biblioteca ndarray para manipular matrices. Tengo una pregunta para la cual no pude encontrar una respuesta explícita en la documentación.

¿Es más eficiente pasar una instancia de ArrayView como argumento a una función o debo usar una referencia a un Array en su lugar? Mi intuición es que, dado que ArrayView es una vista de una matriz, al realizar cálculos solo pasa una vista de la matriz y no otorga propiedad a la función (por lo tanto, no copia) los datos subyacentes.

En resumen, ¿hay alguna mejora de velocidad que esperar al cambiar de pasar instancias de ArrayView a pasar referencias de Array?

Mi objetivo es evitar asignaciones/duplicaciones de memoria inútiles que pueden ser muy costosas al trabajar con matrices grandes.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándome en la documentación y en mi conocimiento de ndarray, es más eficiente pasar una instancia de ArrayView como argumento a una función en lugar de una referencia a un Array. Esto se debe a que ArrayView es una vista de un arreglo y no otorga propiedad a la función, por lo que solo pasa una vista del arreglo y no copia los datos subyacentes. Esto evita la asignación y duplicación innecesaria de memoria, lo cual puede ser costoso para arreglos grandes. Por lo tanto, tienes razón al asumir que usar ArrayView puede llevar a una ganancia de velocidad en comparación con el uso de una referencia a Array.

Comments are closed.