¿Qué otros medios sugiere? Esta es la opción más rápida que se me ha ocurrido hasta ahora...
Optimizar la lógica. Por ejemplo, trabajar con matrices y bucles. Intenta empaquetar los valores de los criterios en un array. Y hacer comprobaciones en bucle. Quizá entonces no sea necesario en 74 mil casos...
1. No, no lo hicieron. ¿Qué se supone que debo ver en él? Realmente no sé cómo usarlo.
2. es la variante "case :" y no la variante "if" la que da un aumento significativo de la velocidad. Si incluso lo haces como
El código será aún más rápido... Pero sí puedes comparar el tiempo de compilación y el rendimiento...
1. Ahí verás las partes más lentas del código. Aunque... Otra cuestión es si afecta a la compilación...
2. Como quieras: puedes utilizar el caso. Se le aconsejó que lo dividiera en pequeñas funciones. Desmóntalo y pruébalo. Sí, por supuesto, el código se hará más grande. Pero qué hacer.
@Renat Fatkhullin, por favor aclara, ¿puede el perfilador ayudar a revelar los cuellos de botella de la compilación? ¿O lo utilizas sólo para comprobar la velocidad del código en tiempo real?
Podría transferir esta enumeración, digamos, a un archivo CSV externo, pero entonces surge otro problema - pérdida de tiempo para leer el archivo, y además, al repartir las tareas a los agentes no puedo enviar a cada agente 500 megabytes, mientras que el código EA se envía a un agente (¿o no?) y se divide entre ellos.
Y otra pregunta, mi código se comprime fácilmente por 7zip de 500 a 15 megabytes, pero después de la compresión, el archivo será de alrededor de 500 - ¿por qué es así - no hay manera de hacer la compresión primitiva (al menos hasta 100 megabytes)?
Comprimir el archivo por medio de un zip. Leer zip, descomprimir en el interior. Será más rápido que transferir 500 Mb de EA (también se transfiere a cada agente).
Alexey Kozitsyn: @Renat Fatkhullin, ¿podría aclarar que el perfilador puede ayudar a revelar los cuellos de botella de la compilación? ¿O lo utilizas sólo para comprobar la velocidad del código en tiempo real?
El perfilador no tiene nada que ver con la compilación.
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
¿Se ha sugerido yael perfilador?
Opción nº 2. Tome cada línea de tipo:
en una función separada. Intenta creer a Renate:)
Es decir, el resultado debería ser así al final:
etc.Sí, hay un enlace a la EA aquí.
Han pasado dos días - la compilación es del 7%...
En esta máquina.
¿Se ha ofrecido yael perfilador?
No, no lo ha hecho. ¿Qué se supone que debo ver en él? Realmente no sé cómo usarlo.
Opción 2. Para poner cada cadena de tipo:
en una función separada. Intenta creer a Renat:)
Es decir, el resultado debe ser así al final:
etc.Es la variante "case :" y no la variante "if" la que da una ganancia de velocidad significativa allí. Si incluso lo haces como
El código se hará aún más grande. Pero puede comparar el tiempo de compilación y el rendimiento, por supuesto...
En este coche.
Sí, ese código no es grande, no he publicado un código de 500 megabytes - si lo necesitas puedo...
¿Qué otros medios sugiere? Esta es la opción más rápida que se me ha ocurrido hasta ahora...
Optimizar la lógica. Por ejemplo, trabajar con matrices y bucles. Intenta empaquetar los valores de los criterios en un array. Y hacer comprobaciones en bucle. Quizá entonces no sea necesario en 74 mil casos...
1. No, no lo hicieron. ¿Qué se supone que debo ver en él? Realmente no sé cómo usarlo.
2. es la variante "case :" y no la variante "if" la que da un aumento significativo de la velocidad. Si incluso lo haces como
El código será aún más rápido... Pero sí puedes comparar el tiempo de compilación y el rendimiento...
1. Ahí verás las partes más lentas del código. Aunque... Otra cuestión es si afecta a la compilación...
2. Como quieras: puedes utilizar el caso. Se le aconsejó que lo dividiera en pequeñas funciones. Desmóntalo y pruébalo. Sí, por supuesto, el código se hará más grande. Pero qué hacer.
Podría transferir esta enumeración, digamos, a un archivo CSV externo, pero entonces surge otro problema - pérdida de tiempo para leer el archivo, y además, al repartir las tareas a los agentes no puedo enviar a cada agente 500 megabytes, mientras que el código EA se envía a un agente (¿o no?) y se divide entre ellos.
Y otra pregunta, mi código se comprime fácilmente por 7zip de 500 a 15 megabytes, pero después de la compresión, el archivo será de alrededor de 500 - ¿por qué es así - no hay manera de hacer la compresión primitiva (al menos hasta 100 megabytes)?
Comprimir el archivo por medio de un zip. Leer zip, descomprimir en el interior. Será más rápido que transferir 500 Mb de EA (también se transfiere a cada agente).
@Renat Fatkhullin, ¿podría aclarar que el perfilador puede ayudar a revelar los cuellos de botella de la compilación? ¿O lo utilizas sólo para comprobar la velocidad del código en tiempo real?
El perfilador no tiene nada que ver con la compilación.