Voracidad de la memoria RAM de la MT5, problemas con la lectura/escritura de archivos grandes - página 8

 
Horror
 
Алексей Тарабанов:
Horror

Las emociones son muy importantes para entender la actitud de una persona. Sin embargo, no es mala idea entender a qué se refieren esas emociones tan fuertes...

 

Permítanme aligerar un poco el ambiente. Recordé un chiste sobre el horror.

Un cliente entra en un burdel. Le dan una chica y suben. Al cabo de un minuto, la chica sale corriendo de la habitación y grita "¡Horror, horror!" y huye. Bien, le dan el segundo. Entra en la habitación, un minuto después sale corriendo gritando "¡horror, horror!" y huye también. Pero hay que atender al cliente. Entonces la propia patrona se dirige a él. Pasa una hora. Sale tambaleándose. Ella dice: "Bueno, el horror... Pero no de horror-horror" )))

 
Aleksey Vyazmikin:

¿Has comprobado que no hay aceleración? ¿O está diciendo que estoy engañando a todo el mundo aquí?

Ni siquiera tienes que comprobarlo aquí. No habrá casi ninguna aceleración por ese cambio porque, como en matemáticas, "la suma no cambia con el cambio de los lugares de las sumas". Así que la falacia es evidente.

Aleksey Vyazmikin:

¿Lees este hilo con atención? ¿Has visto mi respuesta a la solución lista como función? ¿Tiene otra solución? Por supuesto, no sé lo que es OOP, un lector atento de esta rama se habría dado cuenta enseguida...

Siempre hay "otra solución". Pero "otra solución" en este caso es inaccesible por la falta de conocimiento.

Aleksey Vyazmikin:

Sobre la rentabilidad/gratuidad - eso es ridículo, acabo de demostrar que las soluciones de pago no las hacen mejores que las gratuitas, pero vuelves a hablar de dinero...

No se ha demostrado nada. Una solución de pago hace bien su trabajo, pero se utiliza de forma equivocada.

O pagas o aprendes: es la ley del mundo moderno.

Esto es una pesadilla y un caos total.

 
Roffild:

Ni siquiera tienes que comprobarlo aquí. No habrá casi ninguna aceleración por ese cambio porque, como en matemáticas, "la suma no cambia con el cambio de los lugares de las sumas". Así que la falacia es evidente.

Bueno, cómo puedes ser tan santurrón...

Roffild:

Siempre hay "otra solución". Pero "otra solución" en este caso no existe por falta de conocimiento.

Así que deja que la gente con conocimientos se pronuncie sobre los méritos, si no tienes necesidad de ayudar, ¿qué te mueve?

Roffild:

No se ha demostrado nada. La solución de pago hace su trabajo muy bien, pero se utiliza de forma incorrecta.

O pagas o aprendes: la ley del mundo moderno.

Esto es una pesadilla y un caos total.

¿Pueden decirme cómo debo utilizar una clase escrita de acuerdo con mis términos de referencia para mis fines?

 
Aleksey Vyazmikin:

Bueno, cómo puedes ser tan santurrón...

Así que deja que la gente con conocimientos opine sobre los méritos, si no tienes necesidad de ayudar, ¿qué te mueve?

¿Pueden decirme cómo debo utilizar una clase escrita de acuerdo con mis términos de referencia para mis fines?

La arrogancia me da mucha experiencia en la programación de tales tareas.

Todo el mundo se ha pronunciado ya sobre los méritos. Incluso fxsaber dio un enlace a una solución. Pero todas las soluciones reales han sido rechazadas o ignoradas.

La clase es buena, pero está claro que los TdR no se han redactado correctamente con fines que nadie entiende.

Si es tan difícil leer un archivo CSV en 10 líneas de código, quizá no deberías hacerlo tú mismo.

 
Roffild:

Lo que me da confianza es una gran experiencia en la programación de este tipo de tareas.

Todo el mundo se ha pronunciado ya sobre los méritos. Incluso fxsaber dio un enlace a una solución. Pero todas las soluciones reales fueron rechazadas o ignoradas.

La clase es buena, pero está claro que los TdR no se redactaron correctamente para un propósito que nadie entiende.

Si es tan difícil leer un archivo CSV en 10 líneas de código, quizá no deberías hacerlo tú mismo.

Tu aportación al hilo es evidente.

 

Puedo ofrecer mi propia solución. A continuación se muestra el código de prueba y el resultado. El archivo tiene un tamaño de 140Mb y tiene 2000000 registros. El Administrador de Tareas ha visto 270MB de uso de memoria (máximo menos la cantidad sin el script)

   ulong lc1=GetTickCount();
   CSV *csv=new CSV();
   csv.Read_from_file("fff0.csv",true);//Чтение с файла с автоматической конвертацией в нужный формат
   csv.Write_to_file("fff1.csv",true); //Запись в файл
   Print(csv.Get_info());              //Вывод информации о таблице(столбцы, строки, типы данных для каждого столбца)
   Print(GetTickCount()-lc1);          //Вывод времени работы
   delete csv;


Este es un ejemplo de archivo CSV utilizado en la prueba:

boooool;dooooouble;enuuuuuum;looooooong;striiiiiiign;tiiiiiime
FALSE;0.00000000;ORDER_TYPE_BUY;0;0;1970.01.01 00:00
TRUE;1.00000000;ORDER_TYPE_SELL;1;1;1970.01.01 00:00
FALSE;2.00000000;ORDER_TYPE_BUY_LIMIT;2;2;1970.01.01 00:00
FALSE;3.00000000;ORDER_TYPE_SELL_LIMIT;3;3;1970.01.01 00:00

Guardar el archivo sin contar las enumeraciones

boooool;dooooouble;enuuuuuum;looooooong;striiiiiiign;tiiiiiime
0;0.00000000;8;0;0;1970.01.01 00:00
1;1.00000000;0;1;1;1970.01.01 00:00
0;2.00000000;1;2;2;1970.01.01 00:00
0;3.00000000;2;3;3;1970.01.01 00:00
 
Aliaksandr Hryshyn:

Puedo ofrecer mi propia solución. A continuación se muestra el código de prueba y el resultado. El archivo tiene un tamaño de 140Mb y tiene 2000000 registros. El Administrador de Tareas ha visto 270MB de uso de memoria (máximo menos la cantidad sin el script)


Este es un ejemplo de archivo CSV utilizado en la prueba:

Guardar el archivo sin contar las enumeraciones

¡Genial! Estoy de acuerdo en probar su solución.