Tengo un bot que ejecuta un bucle que puede llegar hasta más de 2000 mil ciclos, sin embargo, este se queda paralizado hasta el ciclo 300 sin ninguna razón aparente, porque en la log de consola que hay en rocketbot, no muestra ningún mensaje de error.
Creía que era por problemas de uso de ram, pero al ejecutar el proceso con el administrador de tareas abierto, me percate que el uso de ram es constante, es decir no aumentaba y tampoco disminuía. Sin embargo, investigue que los problemas pueden ser por fragmentación de la memoria ram y que pese no llegar al 100% de uso de ram, podría suceder que la asignación de memoría si lograba llenarse y por eso se llegaba a paralizar, debido a esto le pedí la generación de un código que borrase el uso de memoria fragmentada.
El código es el siguiente:
Sin este script ejecutándose al final de cada ciclo (si es que se llego a ejecutar 15 ciclos anteriormente), el bot solo llegaba a completar entre 17-42 ciclos, lo cual es muy bajo a comparación de con este, pero el problema es que pese esta optimización no se logra completar los 1200 ciclos que tengo (en otros casos pueden ser más de 2000) y solo se queda hasta 300 (específicamente 349).
Adjunto imágenes para que puedan ver los procesos del bot
Se ha omitido la captura de algunos procesos porque son lo mismo que los anteriores y lo único que cambia son la declaración de variables. Además como se puede apreciar se ha desactivado la declaración de variables y se ha cambiado por la alternativa de declararlo con código python, esto es porque con declaración de variables solo llegaba a 80-120 ciclos.
Muestro una captura de log de consola.
¿Alguien ha pasado por un problema similar? Si es así, ¿Cómo lo lograron solucionar? ¿Saben por qué realmente sucede esto? Gracias por su tiempo.