Прожорливость памяти ОЗУ MT5, проблемы с чтением/записью больших файлов - страница 8

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

Эмоции очень важны для понимания отношения человека к происходящему. Однако, не плохо бы понимать в отношении чего выражены столь сильные эмоции?

 

Позвольте немного разрядить обстановку. Про ужас вспомнил анекдот.

Приходит в публичный дом посетитель. Ему дают девушку, поднимаются наверх. Через минуту девушка выбегает из комнаты и с криком "Ужас, ужас!" убегает. Ладно, дают ему вторую. Она заходит в комнату, через минуту выбегает с криком "Ужас, ужас!" и тоже убегает. Но обслужить-то клиента надо. Тогда сама хозяйка идет к нему. Проходит час. Она выходит, шатаясь. Говорит: "Ну, ужас... Но не Ужас-ужас!".  )))

 
Aleksey Vyazmikin:

Вы проверили и не выявили ускорения? Или Вы утверждаете, что я ввожу тут всех в заблуждение?

А тут даже проверять необязательно. Ускорение от такого изменения почти не будет, потому что как в математике "от перемены мест слагаемых сумма не меняется". Поэтому заблуждение очевидно.

Aleksey Vyazmikin:

Вы ветку внимательно читаете? Видели мой ответ на готовое решение в виде функции? У Вас есть другое решение? Конечно что такое ООП я не знаю, внимательно читающий ветку человек сразу бы это подметил...

Всегда есть "другое решение". Но "другое решение" в данном случае недоступно из-за недостатка знаний.

Aleksey Vyazmikin:

Про платность/бесплатность - это уже смешно, я как раз показал, что платные решения не делают решение лучше бесплатного, а Вы опять про деньги...

Ничего показано не было. Платное решение прекрасно выполняет свою задачу, но используется неправильным образом.

Или платишь, или учишься - закон современного мира.

Тут полный кошмар и хаос.

 
Roffild:

А тут даже проверять необязательно. Ускорение от такого изменения почти не будет, потому что как в математике "от перемены мест слагаемых сумма не меняется". Поэтому заблуждение очевидно.

Ну, как можно быть таким самоуверенным...

Roffild:

Всегда есть "другое решение". Но "другое решение" в данном случае недоступно из-за недостатка знаний.

Так дайте людям со знаниями высказаться по существу, если у Вас нет потребности помочь, то что движет Вами?

Roffild:

Ничего показано не было. Платное решение прекрасно выполняет свою задачу, но используется неправильным образом.

Или платишь, или учишься - закон современного мира.

Тут полный кошмар и хаос.

Может расскажите, как я должен использовать класс, написанный по своему ТЗ для своих целей?

 
Aleksey Vyazmikin:

Ну, как можно быть таким самоуверенным...

Так дайте людям со знаниями высказаться по существу, если у Вас нет потребности помочь, то что движет Вами?

Может расскажите, как я должен использовать класс, написанный по своему ТЗ для своих целей?

Самоуверенности мне придаёт большое опыт в программировании таких задач.

Все уже высказались по существу. Даже fxsaber дал ссылку на решение. Но все реальные решения были отвергнуты или проигнорированы.

Класс хорош, а вот ТЗ явно было составлено неправильно для целей, которых никто не понимает.

Если так сложно прочитать файл CSV в 10 строк кода, то может не стоит этим самому заниматься?

 
Roffild:

Самоуверенности мне придаёт большое опыт в программировании таких задач.

Все уже высказались по существу. Даже fxsaber дал ссылку на решение. Но все реальные решения были отвергнуты или проигнорированы.

Класс хорош, а вот ТЗ явно было составлено неправильно для целей, которых никто не понимает.

Если так сложно прочитать файл CSV в 10 строк кода, то может не стоит этим самому заниматься?

Ваш вклад в ветку понятен.

 

Могу своё решение предложить. Ниже тестовый код и результат. Файл имеет размер 140Мб и имеет 2000000 записей. По диспетчеру задач высмотрел 270Мб использования оперативки(максимум минус объём без скрипта)

   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;


Вот пример CSV файла, который используется в тесте:

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

Сохранение файла без учёта перечислений

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:

Могу своё решение предложить. Ниже тестовый код и результат. Файл имеет размер 140Мб и имеет 2000000 записей. По диспетчеру задач высмотрел 270Мб использования оперативки(максимум минус объём без скрипта)


Вот пример CSV файла, который используется в тесте:

Сохранение файла без учёта перечислений

Отлично! Согласен опробовать Ваше решение.

Причина обращения: