У меня будет программа, примерную реализацию я приведу в коде. Суть программы, вначале она получает данные из БД, затем эти данные приводит к какому-то виду ( проходит цикл по каждому значению данных), затем проходит 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
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день помогите решить задачу необходимо после перезагрузки страницы сохранить значение function Selected(a) { var label = avalue;