Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo ejecutar VB con memoria mínima

Cómo ejecutar VB con memoria mínima

1. Utilice números enteros y enteros largos

La forma más sencilla de mejorar la velocidad de su código es utilizar los tipos de datos correctos. Puede que no lo creas, pero elegir los tipos de datos correctos puede mejorar significativamente el rendimiento de tu código. En la mayoría de los casos, los programadores pueden reemplazar variables simples, dobles y monetarias con variables enteras o largas porque VB maneja variables enteras y largas mucho mejor que otros tipos de datos. El siguiente es el orden:

Más largo y más rápido

Entero.

Byte.

Byte único.

Doble.

La moneda es la más lenta

En la mayoría de los casos, la razón por la que los programadores eligen usar simple o doble es su capacidad para guardar decimales. Sin embargo, los decimales también se pueden almacenar en variables de tipo Integer. Por ejemplo, si el programa acepta que hay tres decimales, simplemente divida el valor contenido en la variable Entero por 1000 para obtener el resultado. En mi experiencia, el código se ejecuta casi 10 veces más rápido cuando se usan números enteros y largos en lugar de simples, dobles y de moneda.

2. Evite las variables

Para los programadores de VB, esto es obvio. Las variables requieren 16 bytes de espacio para almacenar datos, mientras que los números enteros (Integer) solo requieren 2 bytes. Los tipos de variables se utilizan a menudo para reducir el esfuerzo de diseño y el volumen de código, y algunos programadores los utilizan para ahorrar tiempo. Sin embargo, si un software se diseña y codifica según especificaciones estrictas, entonces se pueden evitar por completo los tipos de variables.

Por cierto, el mismo problema también existe con los objetos objeto.

El código anterior desperdicia memoria y tiempo de CPU al asignar valores porque no especifica el tipo de datos al afirmar. El código correcto debería verse así:

Dim FSO as New FileSystemObject

3. Evite el uso de propiedades

Una de las ineficiencias más comunes en el código ordinario es la reutilización. propiedades donde puede utilizar variables, especialmente dentro de bucles. Debemos darnos cuenta de que acceder a variables es aproximadamente 20 veces más rápido que acceder a propiedades. El siguiente código es el que muchos programadores usarán en sus programas:

Dim intCon as Integer

For intCon = 0 to Ubound(SomVar())

Text1 .Text = Text1.Text & vbcrlf &.SomeVar(intCon)

Siguiente intCon

El siguiente código se ejecuta 20 veces más rápido que el código anterior.

Atenuar intCon como entero

Atenuar sOutput como cadena

Para intCon = 0 a Ubound(SomeVar())

sOutput = sOutput & vbCrlf &

SomeVar(intCon)

Next

Text1.Text = sOutput

De manera similar, código como este... .

Hacer hasta EOF(F)

Entrada de línea #F, nextLine

Texto1.Text = Texto1.Text + nextLine

Bucle

.. .

Hacer hasta EOF(F)

Entrada de línea #F, nextLine

bufferVar = bufferVar + nextLine

Bucle

Text1.Text = bufferVar

Sin embargo, el siguiente código hace lo mismo, pero más rápido:

Text1 .Text = Input( F, LOF(F))

Como se mencionó anteriormente, hay varias formas de realizar la misma tarea; mientras tanto, el mejor algoritmo es el óptimo;

4. Intente utilizar matrices y evite el uso de conjuntos

A menos que deba utilizar conjuntos, intente utilizar matrices. Después de la prueba, la velocidad de acceso a la matriz es 100 veces mayor que la de la colección. Esta cifra puede parecer un poco impactante, pero si consideras que una colección también es un objeto, entenderás por qué la diferencia es tan grande.

5. Expanda bucles pequeños

Al codificar, puede encontrar una situación en la que el cuerpo del bucle solo se repite 2 o 3 veces y el cuerpo del bucle consta de varias líneas de código. En este caso puedes ampliar el bucle. La razón de esto es que el bucle consume tiempo de CPU adicional. Pero si el ciclo es complejo, no es necesario que haga esto.

6. Evite el uso de funciones muy cortas

Al igual que con el uso de bucles pequeños, no es económico llamar funciones con solo unas pocas líneas de código, porque llamar a la función puede tardar más que ejecutar El código de la función es aún más largo. En este caso, puede copiar el código de la función a la ubicación donde se llamó originalmente a la función.

7. Reducir las referencias a subobjetos

En VB, las referencias a objetos se logran mediante el uso de . Por ejemplo:

Form1.Text1.Text

En el ejemplo anterior, el programa hace referencia a dos objetos: Form1 y Text1. Usar este método para citar es ineficiente. Pero, lamentablemente, no hay forma de evitarlo. Lo único que puede hacer el programador es usar With o guardar el objeto hijo (Texto1) con otro objeto.

ForeColor = vbWhite

Finalizar con

O

' Usar otro objeto para guardar el objeto secundario

Atenuar txtTextBox como TextBox

Set txtTextBox = frmMain.ForeColor = vbWhite

Tenga en cuenta que el método anterior solo es aplicable cuando es necesario manipular el subobjeto del objeto. El siguiente código es incorrecto:

Con Texto1

.Text = "Aprender VB"

.Text = "Aprender VB"

.Alignment = 0intCount=Record.RecordCount

Registro .MoveFirst

For i=1 To intCount

'Code

Records.MoveNext

Siguiente i

Parte 2 Optimización de la compilación

Muchos programadores de VB que conozco nunca han usado opciones de compilación y nunca han intentado descubrir las diferencias entre las distintas opciones. Echemos un vistazo a lo que significa cada opción.

1. Código P (pseudocódigo) y código nativo

Puede optar por compilar el software en código P o código nativo. La opción predeterminada es el código local. Entonces, ¿qué son los códigos P y los códigos nativos?

Código P: cuando ejecuta código en VB, VB primero compila el código en código P y luego interpreta y ejecuta el código P compilado. En un entorno compilado, utilizar este tipo de código es más rápido que el código nativo. Cuando selecciona el código P, VB coloca el pseudocódigo en el archivo EXE al compilar.

Código nativo: El código nativo es una opción introducida después de VB6. Cuando se compila en un archivo EXE, el código nativo se ejecuta más rápido que el código P. Cuando selecciona código nativo, VB utilizará instrucciones de la máquina para generar un archivo EXE en el momento de la compilación.

Al compilar con código nativo, encuentro que a veces ocurren algunos errores inexplicables. Mi código se ejecuta perfectamente bien en el entorno compilado, pero el archivo EXE generado usando la opción de código nativo no. Esto suele suceder cuando se descarga una ventana o aparece una ventana de impresión. Resolví este problema agregando una declaración DoEvent al código. Por supuesto, la posibilidad de que esto suceda es muy pequeña, y tal vez algunos programadores de VB nunca se hayan encontrado con esta situación, pero sucede.

También hay varias opciones en código nativo:

a) Optimización de la velocidad del código: Esta opción compila un ejecutable que es más rápido, pero el ejecutable es más grande. Recomendado

b) Optimización del tamaño del código: esta opción puede compilar archivos ejecutables más pequeños, pero sacrificará la velocidad y no se recomienda.

c) Sin optimización: esta opción simplemente convierte el código P en código nativo sin ninguna optimización. Se puede utilizar al depurar código.

d) Optimizar para Pentium Pro: Aunque esta opción no es la predeterminada para código nativo, yo suelo utilizarla. Los ejecutables compilados con esta opción se ejecutan más rápido en máquinas Pentium Pro y Pentium 2+ y un poco más lento en máquinas más antiguas. Se recomienda esta opción teniendo en cuenta que ahora está utilizando un Pentium 2 desactualizado.

e) Generar información de depuración simbólica: esta opción puede generar cierta información de depuración durante el proceso de compilación, de modo que los usuarios puedan usar herramientas como Visual C++ para depurar el código compilado. El uso de esta opción generará un archivo .pdf que registra la información del símbolo en el archivo ejecutable. Esta opción es útil cuando el programa tiene funciones API o llamadas DLL.

2. Optimización Avanzada

Las configuraciones en Optimización Avanzada pueden ayudarte a mejorar la velocidad del software, pero en ocasiones también pueden introducir errores, por lo que te recomiendo que lo uses con precaución. . Si su código contiene bucles grandes u operaciones matemáticas complejas, verificar ciertos elementos en Optimización avanzada mejorará en gran medida el rendimiento de su código.

Si utiliza optimizaciones avanzadas, le recomiendo realizar pruebas rigurosas de sus archivos compilados.

a) No asumir ningún alias: esto puede mejorar la eficiencia de ejecución del código en el cuerpo del bucle, pero puede causar un error si el valor de la variable se cambia por la referencia de la variable, por ejemplo , si el método se llama con Se utiliza una referencia a una variable como parámetro del método y el valor de la variable se cambia dentro del método. Esto puede ser un simple error de devolución de resultado o puede ser un error grave que hace que el programa se bloquee.

b) Desmarque los enlaces de matriz, desmarque los desbordamientos de enteros y desmarque los errores de punto flotante: si se detecta un error a través de estas comprobaciones mientras el programa se está ejecutando, el código de manejo de errores manejará el error. Pero si se cancelan estas comprobaciones, el programa no podrá manejar los errores cuando se produzcan. Utilice estas opciones sólo si está seguro de que los errores anteriores no se producirán en su código. Tendrán un impacto significativo en el rendimiento del software.

c) Permitir operaciones de punto flotante sin redondeo: seleccione esta opción para hacer que el programa compilado procese las operaciones de punto flotante más rápido. Su única desventaja es que puede generar resultados incorrectos al comparar dos números de coma flotante.

d) Eliminar la verificación de seguridad Pentium FDIV: esta opción se configuró para algunos chips Pentium más antiguos y parece estar obsoleta ahora.