Очистить кэш данных

Автор: CyberTrader

Очистить кэш данных - Tue Sep 29 2015 09:04 AM

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

Code:
public OptimProperty K = new OptimProperty(1, 1, 10, 1);
public OptimProperty Param2 = new OptimProperty(10, 10, 100, 1);
public OptimProperty Param3 = new OptimProperty(10, 10, 100, 1);

public void Execute(IContext context, ISecurity source) {
  IList<double> Ind = context.GetData("Ind", new string[] {Param2.ToString()+'_'+Param3.ToString()}, () => CalcInd(source, Param2, Param3));
Автор: ra81

Re: Очистить кэш данных - Tue Sep 29 2015 09:12 AM

с чего вы решили что они больше не нужны? ваш третий меняется и снова повторяются те же значение параметров 1 и 2 и снова их нужно вычислять.
Автор: CyberTrader

Re: Очистить кэш данных - Tue Sep 29 2015 09:48 AM

Originally Posted By: CyberTrader
По второму и третьему параметру вычисляется индикатор
(Немного изменил названия параметров, чтобы не было путаницы.)
Когда меняется третий параметр (Param3), предыдущий набор Param2+Param3 уже более не повторится.
Автор: ra81

Re: Очистить кэш данных - Tue Sep 29 2015 02:26 PM

никак не почистить. если памяти будет не хватать тслаб сам начнет чистить кэш, как я помню. Руками этого не сделать.
Автор: CyberTrader

Re: Очистить кэш данных - Wed Sep 30 2015 08:21 AM

Originally Posted By: ra81
никак не почистить. если памяти будет не хватать тслаб сам начнет чистить кэш, как я помню.
Не, сам он ничего не чистит.
Автор: ra81

Re: Очистить кэш данных - Wed Sep 30 2015 08:22 AM

что значит не чистит? Давайте уже точнее ваши настройки кэша и так далее и что происходит. А то пока мы тут гадаем.
Автор: CyberTrader

Re: Очистить кэш данных - Wed Sep 30 2015 06:58 PM

Настройки оптимизации:


В системе 16 Гб памяти. Системой и др. процессами было занято около 3-4 Гб.
Поставил на ночь скрипт с большим количеством проходов с тремя параметрами оптимизации, как в примере выше.
К утру TSLab выжрал всю память и выкинул сообщение о нехватке памяти.
Я освободил ещё 1-2 Гб, закрыл системные сообщения, но активировать TSLab не получилось: он что-то там себе считал в фоне, но окно приложения не появлялось. Только иконка на панели, да процесс в диспетчере... Как-то так...
Автор: CyberTrader

Re: Очистить кэш данных - Thu Oct 01 2015 06:07 PM

Так, что там с очисткой кэша? Нет информации?
Автор: ra81

Re: Очистить кэш данных - Thu Oct 01 2015 07:06 PM

Originally Posted By: CyberTrader
Так, что там с очисткой кэша? Нет информации?

Результаты оптимизации потребляют память. 1 строка приблизительно 1 кб. Вот и считайте что у вас выходит. Это уже не может быть зачищено, оно и жрет память.
Автор: CyberTrader

Re: Очистить кэш данных - Thu Oct 01 2015 07:52 PM

Originally Posted By: ra81
Результаты оптимизации потребляют память. 1 строка приблизительно 1 кб. Вот и считайте что у вас выходит. Это уже не может быть зачищено, оно и жрет память.
Т.е., все результаты хранятся в памяти? Плохо. А такое ощущение, что результаты скидываются в хранилище, и при просмотре вкладки с результатами считываются оттуда: уж очень сильно тормозит эта вкладка даже если ничего не рассчитывается.
Лучше бы, действительно сохранял сразу в файл или БД: всё равно для комфортного просмотра результатов оптимизации приходится использовать другие средства.

В v.2 такая же беда?
Автор: ra81

Re: Очистить кэш данных - Thu Oct 01 2015 08:50 PM

тормозит потому что есть файл подкачки и часть грузится оттуда а это медленно.
Просто зачем столько пересчетов делать? Мильоны и мильярды? В этом нет смысла.

в 2 версии не скажу.
Автор: CyberTrader

Re: Очистить кэш данных - Thu Oct 01 2015 09:22 PM

Originally Posted By: ra81
тормозит потому что есть файл подкачки и часть грузится оттуда а это медленно.
У меня нет файла подкачки smile
А страница результатов тормозит, даже если там всего несколько сот записей.
Автор: CyberTrader

Re: Очистить кэш данных - Thu Oct 01 2015 10:02 PM

Originally Posted By: ra81
Просто зачем столько пересчетов делать? Мильоны и мильярды? В этом нет смысла.
Смысл есть: три параметра по 100 шагов - уже миллион проходов. При большем количестве параметров и пересчётов будет больше.
Выход - увеличивать шаг изменения параметров.
Но, согласитесь, отсутствие возможности задавать нелинейное изменение параметров - это большое упущение со стороны разработчиков.
К примеру: min = 10, max = 100. Чтобы уменьшить количество проходов, задаём шаг = 5. Получаем 19 проходов. Но при минимальном значении 10 шаг в 5 пунктов - это 50% к предыдущему значению!
Другой вариант: использовать переменный шаг, например в процентах от предыдущего значения параметра. Для данного примера диапазон 10-100 будет пройден за 19 шагов при шаге в 13,65%.
Согласитесь, второй вариант выгоднее.
Данный подход можно осуществить через API, перебирая параметры с минимальным шагом, но с ростом значения параметра пропуская часть расчётов. Но в этом случае в таблицу результатов попадут все результаты, просто часть из них будет с нулями.
Отсюда - и "мильоны пересчетов".
Автор: ra81

Re: Очистить кэш данных - Fri Oct 02 2015 05:48 AM

Напишите свой оптимизатор smile. Он будет перебирать так как вам угодно. Это реально не сложно.

А то что у вас десять параметров и все хочется перебрать, это нереально просто. Даже мегагенетический оптимизатор даст на выходе ерунду. Либо локальный экстремум либо еще что, потому что такое число параметров обязательно даст изрытый ландшафт и не будет одной выпуклой поверхности. Будет много их. Изучайте сетку параметров убирайте левые или фиксируйте их.
Автор: CyberTrader

Re: Очистить кэш данных - Fri Oct 02 2015 09:05 AM

Originally Posted By: ra81
А то что у вас десять параметров и все хочется перебрать, это нереально просто.
Пошёл уже флуд. Я писал о десяти параметрах?

Originally Posted By: ra81
Даже мегагенетический оптимизатор даст на выходе ерунду. Либо локальный экстремум либо еще что, потому что такое число параметров обязательно даст изрытый ландшафт и не будет одной выпуклой поверхности. Будет много их. Изучайте сетку параметров убирайте левые или фиксируйте их.
В TSLab можно построить поверхность по результатам оптимизации? Не нашёл такого функционала.

Originally Posted By: ra81
Напишите свой оптимизатор
Где можно взять пример кода оптимизатора?