Оптимизация реализации программы

247
07 ноября 2017, 23:13

У меня будет программа, примерную реализацию я приведу в коде. Суть программы, вначале она получает данные из БД, затем эти данные приводит к какому-то виду ( проходит цикл по каждому значению данных), затем проходит 2 цикла. В первом цикле мы перебираем 2-8 параметров, которые служат входными данными в функцию, в котором есть свой цикл. В цикле мы по какому-то условию, добавляем элемент(объект) в массив в поле основного объекта и при определенном условии изменяем значение одного из свойств добавленного элемента в списке. Везде используется List<double> или List<DateTime>. Из-за того, что я в основном объекте использую массив, с которым работаю, при каждом проходе первого цикла я создаю новый основной объект. Простейший пример приведу в коде :

public class MainClass
{
    ListOfC array;
    List<double> x, y;
    // Здесь в основном я получаю данные из БД и через цикл добавляю их в x,y и создаю объект ListOfC; 
}
public class ListOfC
{
    List<C> arrayC;
    // Здесь пару функций добавления в массив arrayC;
}
public class C
{
    // Здесь имеются какие-то поля и пару функций для изменения этих полей
}
public class Realize
{
    public double Result()
    {
        // здесь я прохожу цикл из 1000 итераций, каждая из которых создает отдельный объект MainClass выполняет функцию Calc и получает результирующее значение, при каждом новом проходе мы имеем разные значения ListofC и поэтому создаем разные объекты MainClass
    }
    public double Calc()
    {
        // Здесь я прохожу цикл и в по условиям добавляю в ListOfC новые элементы и изменях их путем выбирания конкретного объекта в списке. 
    }
}

Из своих мыслей я думаю реализовать кэш, чтобы при каждом созданном объекте MainClass данные из БД в x и y каждый раз не брать. Ну и включить параллельное выполнение цикла из 1000 итераций т.к. каждая итерация не зависит от предыдущей. Кое как реализовал, скорость повысилась в разы, но не так быстро всё же, как в аналогичной программы, где 1000 итераций проходят за 1 секунду. Как можно достичь такого результата в 1 секунду? Я доходил до 10-18 секунд при просчете с CacheMemory и AsParallel.

READ ALSO
Don&#39;t destroy Партиклов (Unity 5 C#)

Don't destroy Партиклов (Unity 5 C#)

Добрый деньУ меня есть прифаб PS_Sun

240
Как сократить и оптимизировать код js

Как сократить и оптимизировать код js

есть такой блок с кодом JS:

252
Javascript, подбор параметров для функции

Javascript, подбор параметров для функции

Всем доброго времени сутокДана функция:

311
Как сохранить значение присвоеного style.display=&#39;inline&#39; для block1-block7 function Selected(a) { var label = a.value; после перезагрузки?

Как сохранить значение присвоеного style.display='inline' для block1-block7 function Selected(a) { var label = a.value; после перезагрузки?

Добрый день помогите решить задачу необходимо после перезагрузки страницы сохранить значение function Selected(a) { var label = avalue;

331