Реально ли оптимизировать код ? - страница 3

 
Integer >>:

Если файл загружается один раз на запуске, можно без этого обойтись, просто перекидать его в массив double.

А как его закидать в бинарном виде а потом еще и считать как нужно ? ..

 
Mathemat >>:

Ну как хотите. Вам показали, как от этих строк избавиться.

Строчные массивы жрут очень много памяти и медленно обрабатываются, хоть у Вас 8 котлов будет.

Я приму к сведению ваши коментарии спасибо :) Тока вот попробую понять как с бинарными данными работать!

 
DetRoyD писал(а) >>

А как его закидать в бинарном виде а потом еще и считать как нужно ? ..

Загрузить так как есть сейчас - в строковый, потом масшатабировать массив double, чтобы был такого же размера как строковый, и в цикле перекидать в него все данные.

Бинарные не данные, а файлы. Здесь не про файла, а про то, как простым способом избавиться от строковых массивов.

 
Integer >>:

Загрузить так как есть сейчас - в строковый, потом масшатабировать массив double, чтобы был такого же размера как строковый, и в цикле перекидать в него все данные.

Брр ... несовсем понятно а кокой нить схематичный примерчик можжно для наглядности ?

 
DetRoyD писал(а) >>

Брр ... несовсем понятно а кокой нить схематичный примерчик можжно для наглядности ?

Глядя на ваш код, что вы там закрутили, ну не верю, что не понимаете.

 
Integer >>:

Глядя на ваш код, что вы там закрутили, ну не верю, что не понимаете.

Да не просто я хорошо знаю PHP логика то везде одна вот и закрутил :)) А вот с бинарными данными у меня не очень :) Я примерно понимаю как их загрузить в файл, а вот как обратно в нормальном виде выгрузить??? Тут у меня возникают осложнения :)

 
PapaYozh >>:

Конкретно этот кусок я б поправил так:

Можно еще ускорить - убираем лишние вызовы функций :


for(j=0,ii=i;j<kolichestvo;j++,ii++)
      {
         check_Mass[j][0] = StrToDouble(ArrayStrg[ii][5]); //Отвечает за время Time
         check_Mass[j][1] = StrToDouble(ArrayStrg[ii][3]); //Отвечает за Максимум High
         check_Mass[j][2] = StrToDouble(ArrayStrg[ii][4]); //Отвечает за минимум Low 
         check_Mass[j][3] = StrToDouble(ArrayStrg[ii][1]); //Отвечает за закрытие Close
         check_Mass[j][4] = StrToDouble(ArrayStrg[ii][2]); //Отвечает за открытие Open
         if(check_Mass[j][3]) != check_Mass[j][4] )
               {
                  if(check_Mass[j][3]) > check_Mass[j][4])
                     {
                        check_Mass[j][5] = 0;//если закрытие выше открытия значит свеча бычья
                     }
                  else
                     {
                        check_Mass[j][5] = 1;//если закрытие ниже открытия значит свеча медвежья
                     }
               }
         else {check_Mass[j][5] = 2;}// ???????? Проверьте коммент ?????? если закрытие ниже открытия значит свеча доже         
         //sam = sam + check_Mass[j][1]+" =>";     
         count++;
      }

Удачи

 
VladislavVG >>:

Можно еще ускорить - убираем лишние вызовы функций :


Удачи


Пасип, чет про повторный вызов функции с циклом то я сам не догодался! Осталось тока что нить с бинарником решить!

 

Поковыряйтесь в Period_converter, идущем в стандартной сборке (это скрипт от разработчиков). Может, и сами разберетесь.

 
Mathemat >>:

Поковыряйтесь в Period_converter, идущем в стандартной сборке (это скрипт от разработчиков). Может, и сами разберетесь.

Thanks, попробую! :)

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