![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿alguien tiene algún compilador instalado? ¡por favor, compruébalo! ¿no es así de aburrido?
El tiempo de direccionamiento de un elemento del array no es SIEMPRE mayor que el tiempo de direccionamiento de una variable.
Las cifras específicas serán diferentes para los distintos compiladores, pero la tendencia debería mantenerse.
El compilador es Visual Studio 2005. El procesador es Athlon XP 2500+.
El tiempo de ejecución junto con la inicialización de la matriz es de 1,06-1,07 segundos.
El mismo bucle, pero con
da de 0,37 a 0,4 segundos.
Y por último,
0,56-0,6 с.
Así que me gustaría sacar la siguiente conclusión:
no se trata de un compilador ni de "array/no array", sino de una estructuración de datos adecuada y un código correcto.
P.D. Por supuesto, todas las tesis anteriores, excepto las medidas de tiempo, son mi opinión personal, profundamente subjetiva y modesta, como programador.
sí, la optimización del código resultante en el compilador es una potencia después de todo...
no quiero entrar en detalles, pero parece que el copilador de visual studio optimiza los accesos a los arrays por sí mismo.
para que la prueba sea justa, es necesario introducir una variable, digamos, S; e insertar entre todas las asignaciones x,y,z algo así como S=S+x, S=S+y, S=S+z, y luego dar salida a S además del tiempo para obtener la velocidad "pura".
aunque el optimizador del compilador puede averiguar parcialmente esta trampa... :)
Hace tiempo que descarté esos pensamientos. Incluso he hecho pruebas. Y he llegado a una conclusión:
El compilador realiza todas las operaciones prescritas y simplemente no tiene derecho a no realizarlas porque es simplemente imposible saber al 100% desde dónde pienso acceder a estas variables - en el mismo método, desde algún temporizador (y código estructuralmente no relacionado) o incluso desde algún otro proceso.
Por lo tanto, todo es justo. Comprobado.
P.D. Offtopics, lo siento. No pude resistirme.
¿cuál es el array especificado por el parámetro en ArrayCopySeries?
¿es un array normal de valores, o un array de punteros a valores?
(obviamente es una pregunta tonta, pero hace 10 años que no programo, y mucho menos en C, y mucho menos en Windows).
y ¿dónde leer sobre todo esto?
Realmente necesito...
¿Hay alguna manera de... No lo sé. ¿Está permitida la invocación recursiva de start()?
no hay manera. el EA no se iniciará si el botón está desactivado.
está permitido.
Gracias por su respuesta.
Bueno, eh... ¿Y ahora qué?
No sé... o ir por 5, pero ayer... y hoy por 3... los pequeños.
Tendré que conformarme con un montón de pequeños. No quería hacerlo. Bueno, y ahora qué... :(
Parece tan fácil...
(no me hagas caso, que la meditación ya salpica el teclado)
¿Soy yo, o se supone que es así?
Son y siempre han sido destacados con normalidad. Acabo de comprobar la construcción del 183 y el 187.