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
Tengo la sospecha de que el autor de este comentario no sabe en absoluto cómo funcionan el procesador, la memoria y el compilador...
Creo que el autor fue tan desconsiderado que no entendió la pregunta.
¿Qué tienen que ver la memoria y la CPU? La pregunta era sobre la optimización en MQL5.
P.D. Lea con tranquilidad el entretenido libro " Técnica del desarrollo de la atención, O.A. Andreev, 2007".
¿Qué tienen que ver la memoria y la CPU? La pregunta era sobre la optimización en MQL5.
Así que ese código, en su opinión, no utiliza ni memoria ni CPU? Y respondo a la afirmación sobre los compiladores:" Tendrásque esforzarte mucho para superar las optimizaciones de los compiladores modernos". "
Tengo la sospecha de que el autor de esta afirmación no sabe en absoluto cómo funcionan el procesador, la memoria y el compilador... Estoy dispuesto a apostar que cualquiera de sus códigos puede ser acelerado al menos diez veces, o incluso cientos de veces.
Así que primero intenta demostrarlo con respecto al código en cuestión. Además, si crees en los resultados citados por Igor, es al revés: la declaración dentro del bucle funciona un poco más rápido.
Así que todo este baile y barajar tratando de burlar al compilador cuesta más al final. Hace más difícil que el compilador optimice el código. Cuando una variable se declara fuera de un bloque, se considera externa yconserva su estado entre iteraciones, lo que significa que el compilador tiene opciones limitadas para optimizarla. El código limpio siempre se optimiza mejor que el código "sucio" (que tiene efectos secundarios), si se conoce el paradigma de la programación funcional.
Así que primero intenta demostrarlo con respecto al código en cuestión. Además, si crees en los resultados citados por Igor, es al revés: la declaración dentro del bucle funciona un poco más rápido.
Así que todo este baile y barajar tratando de burlar al compilador cuesta más al final. Hace más difícil que el compilador optimice el código. Cuando una variable se declara fuera de un bloque se considera externa y conserva su estado entre iteraciones, lo que significa que el compilador tiene capacidades limitadas para optimizarla. El código limpio siempre está mejor optimizado que el código "sucio" (que tiene efectos secundarios) si se conoce el paradigma de la programación funcional.
Lee tranquilamente mi libro, creo que aprenderás mucho sobre los compiladores.
Así que primero intenta demostrarlo con respecto al código en cuestión. Además, si crees en los resultados citados por Igor, es al revés: la declaración dentro del bucle funciona un poco más rápido.
Así que todo este baile y barajar tratando de burlar al compilador cuesta más al final. Hace más difícil que el compilador optimice el código. Cuando una variable se declara fuera de un bloque, se considera una variable externa que conserva su estado entre iteraciones. Esto significa que el compilador tiene opciones limitadas para su optimización. El código limpio siempre se optimiza mejor que el código "sucio" (que tiene efectos secundarios), si se conoce el paradigma de la programación funcional.
Mi prueba muestra lo contrario, el código con una declaración de variable detrás del bucle funciona más rápido
https://www.mql5.com/ru/forum/320307/page2#comment_12886814
Ejecutado muchas veces, el resultado es estable, el código con la declaración de la variable después del bucle, funciona más rápido
Mi prueba muestra lo contrario, el código con una declaración de variable detrás del bucle es más rápido
Es extraño, pero antes el hombre tuvo los resultados opuestos
Primero deberías aprender lo básico y luego demostrar tu punto de vista. Entenderías el resultado sin necesidad de hacer pruebas, si hubieras leído al menos un libro sobre el funcionamiento de la CPU y la memoria. Te he ofrecido el más ingenioso, si quieres avanzar un poco en la programación, lo leerás.
Es extraño, pero antes el hombre tuvo los resultados opuestos
Ya he dicho que esa prueba de velocidad en un ejemplo artificial no es nada indicativa. ¿No es suficiente mi investigación bajo el depurador? ¿No tengo ninguna credibilidad? Todo ignorado, depende de ti, yo estoy fuera.
Además, si crees en los resultados de Igor de arriba, es lo contrario.
No me creo nada, siempre lo compruebo dos veces, no creo que haya que subirme la autoestima... ¡Ha habido diferentes casos en la historia, voy a encontrar un Napoleón, y vamos! ))))
Es extraño, pero antes el hombre obtuvo los resultados contrarios.
¿Por qué he añadido srand(GetTickCount()) a mi prueba? ?
;)