none
Función que tarda en cargar la primera vez vb.net

    Pregunta

  • Buenos días a todos.

    Tengo el siguiente problema:

    La primera vez que cargo una función me tarda bastante en cargar,en cambio las demás veces me lo hace al instante.

    ¿Puede ser por que es una función con muchas lineas de código?

    GRACIAS.

    Por cierto no me deja enviar la función por que el cuadro de texto no me lo permite por la longuitud

    miércoles, 25 de enero de 2017 7:59

Respuestas

  • Si la función tiene tantas líneas como para que no la puedas poner aquí ya está mal.
    Una función debe ser legible y entendible tanto cuando se está desarrollando como un tiempo después cuando haya que hacer el mantenimiento de la aplicación. Para eso no debe tener demasiadas líneas. En caso de necesitarse muchas líneas debes dividirla en diferentes funciones que hagan procesos concretos dentro de ese conjunto.


    Saludos, Javier J

    miércoles, 25 de enero de 2017 9:08

Todas las respuestas

  • Si la función tiene tantas líneas como para que no la puedas poner aquí ya está mal.
    Una función debe ser legible y entendible tanto cuando se está desarrollando como un tiempo después cuando haya que hacer el mantenimiento de la aplicación. Para eso no debe tener demasiadas líneas. En caso de necesitarse muchas líneas debes dividirla en diferentes funciones que hagan procesos concretos dentro de ese conjunto.


    Saludos, Javier J

    miércoles, 25 de enero de 2017 9:08
  • Hola Javier.

    Lo que dices es correcto.

    Es que esta función estaba ya creada por otra persona.

    De todas maneras lo que no entiendo es que la primera vez que la llamo tarde bastante y luego las demás veces que la llamo  me la ejecuta al instante.

    Muchas gracias por la respuesta.

    jueves, 26 de enero de 2017 7:04
  • Sin ver la función es difícil saber porque ocurre eso pero podría ser porque la primera vez se ejecute de una forma y las siguientes no se ejecuten algunos puntos de la función.

    Pon un punto de interrupción al principio de la función y comprueba como se está ejecutando la primera vez y que ocurre a partir de la segunda ejecución.


    Saludos, Javier J

    jueves, 26 de enero de 2017 7:41
  • La cuestión esque pongo el punto de interrupción en la funcion y hasta que llega a la funcion es donde tarda

    Muchas gracias de todas maneras.

    Aqui lpongo el punto de interrupcion:

     CargarDatosConsulta()

    Pues hasta que llega aqui:

     Public Sub CargarDatosConsulta()
            Try
                contador_RE = 0
                Dim lista1 As New List(Of String)
                Dim lista2 As New List(Of String)
                Dim lista3 As New List(Of String)
                Dim lista4 As New List(Of String)
                Dim lista5 As New List(Of String)
                Dim lista6 As New List(Of String)
                Dim lista7 As New List(Of String)
                Dim lista8 As New List(Of String)

                Dim lista_contc_ojos As New List(Of String)

    la funcion aqui sigue

    ....................................

    ...................................

    .................................

    }

    me tarda mogollon la primera vez


    jueves, 26 de enero de 2017 9:42
  • Es posible que la primera vez sirva también para cachear la función, de tal manera que las siguientes veces debería de ser más rápida.
    jueves, 26 de enero de 2017 21:52
  • Buenas,

    muchas listas la memoria creo que va a quedar un poco limitada, en posteriores veces que se ejecute es posible que algunos datos estén en la cache y por lo tanto tarde bastante menos.

    te recomiendo reducir la función, reducir el número de listas, genera una matriz, o genera una funcion por cada lista, también puedes realizar llamadas asincronas para la carga de datos.

    jueves, 26 de enero de 2017 21:54