Voracidad de la memoria RAM de la MT5, problemas con la lectura/escritura de archivos grandes - página 5
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
por lo que es un array de 2 dimensiones, una matriz. Escríbelo.
¿Puedes mostrarme un ejemplo de cómo escribir y leer matrices multidimensionales? Está claro en teoría, pero la aplicación no está clara.
¿Puedes mostrarme un ejemplo de cómo escribir y leer matrices multidimensionales? Está claro en teoría, pero la aplicación no está clara.
Al igual que las matrices unidimensionales, con WriteArray()
Me siento cómodo usando la clase, la he estado usando durante 3 años, desde MT4 - es práctico, pero maldita sea, es lento.
Por supuesto, es fácil leer una cadena, pero convertirla en una estructura celular que funcione es mucho más difícil.
¿Qué quieres decir con que no puedo utilizar las clases? Yo sí, y además, el empleado de la metacita escribió la clase. Y entonces, realmente contraté a una persona, pagué y esperé obtener un producto terminado, pero me dijeron que está bien ser lento... Les creí, pero ahora tengo demasiada memoria: estoy indignado.
La clase está diseñada para archivos pequeños. No importa en absoluto quién haya creado la clase. Ahora necesitamos un enfoque diferente para leer un archivo, por lo que la clase maneja mal ese archivo.
La clase está diseñada para archivos pequeños. No importa en absoluto quién haya creado la clase. Ahora necesitas un enfoque diferente para leer un archivo, por lo que esa clase no maneja bien ese archivo.
Lo perpetuaré. Jodido, gracias.
al igual que las unidimensionales, mediante WriteArray()
Encontré un ejemplo, tendré que probarlo, tendré que escribir dos archivos - para la comprensión general y probablemente para acelerar el procesamiento.
Gracias.
Añadido: Tengo entendido que sólo se puede escribir 1 array a la vez, lo que por supuesto no es muy conveniente.La clase está diseñada para archivos pequeños. No importa en absoluto quién haya creado la clase. Ahora necesitas un enfoque diferente para leer un archivo, por lo que esa clase no maneja bien ese archivo.
Si mi memoria no me falla, inmediatamente dije que tenemos que trabajar con archivos grandes, y por ejemplo se dio un archivo grande - decenas de megabytes, si no un centenar (tenemos que ver la correspondencia, y en el formato actual no es conveniente hacer).
Encontré un ejemplo, tengo que probarlo, tendré que escribir dos archivos - para la comprensión general, y probablemente para acelerar el procesamiento.
Gracias.
Añadido: Tengo entendido que sólo se puede escribir 1 array a la vez, lo que por supuesto no es muy conveniente.Muy conveniente :)
muy práctico :)
No es conveniente porque hay que crear un archivo separado para los diferentes tipos de datos.
No es conveniente, ya que hay que crear un archivo separado para los diferentes tipos de datos.
Bueno, puedes ponerlo en el mismo directorio para que no esté disperso. No tendrás ningún problema. Eso es lo que siempre hago para los expertos. Inmediatamente creo un directorio llamado nombre del programa/número de cuenta y puse todos los archivos en él.
Recomiendo hacer un cambio mínimo primero, para que la reasignación de memoria se haga con menos frecuencia. Dos líneas
m_total_rows++;
ArrayResize(m_cells,m_total_rows*m_total_columns,10000);
en bool CSVReader::AddData(string data_str,bool header) sustituir por
m_total_rows++;
if (m_total_rows*m_total_columns>ArraySize(m_cells)) ArrayResize(m_cells,2*m_total_rows*m_total_columns);
El número de reasignaciones de memoria con copia debería ser O(log(n,2)) en lugar de O(n). 20 en lugar de 600 mil. Tal vez eso sea suficiente para ti ahora.