время проведения в зависимости от количества строк в документе

psvpolo


по х - сотни строк, по y- секунды
типовая 1с бп, док - реализация
нижний график - усовершенствованный механизм, вверху - типовой

sequritiorg

ну и графег...
сзкфмн

hwh2010

усовершенствованный механизм
нанотехнологии задействовал?

psvpolo

нет, разбиение таблицыТоваров на подтаблицы по 300 строк при проведении по партиям, всеголиш...

geja_03

гм, было бы логично увидеть что-то монотонное - линейное там, или экспоненциальное, чего график то пидорасит так?

val63

Как ты умудрился сделать время нелинейным?

elenangel

хрен с ним, с нелинейным, оно же немонотонно даже, это более странно

karkar

Так лучше:

Alena_08_11

Да хрен с ним как он сделал.
Как одинэсники сделали его нелинейным и немонотонным в типовой ?
Или тест снимался с продакшн базы, на которой могла быть нагрузка в этот момент ?

elenangel

характер немонотонности одинаков для обоих тестов - либо они делались одновременно, либо нагрузка при тестировании была идентична (вероятность -> 0 либо немонотонность обусловлена гениальностью алгоритма - буферизация какая-нибудь к примеру

Serab

а вы понимаете, что там за алгоритм? Почему он линейным-то должен быть от числа строк?

schipuchka1

ну хотя бы монотонным-то он быть должен?

kovrovec

>>ну хотя бы монотонным-то он быть должен?
В общем случае не должен, хотя на графике и правда что-то стремное.

schipuchka1

если алгоритм обработки базы зависит от количества строк немонотонно, то это скорей всего какой-то херовый алгоритм, который большую часть времени занимается непонятно чем

Dasar

если алгоритм обработки базы зависит от количества строк немонотонно, то это скорей всего какой-то херовый алгоритм, который большую часть времени занимается непонятно чем
тогда весь компьютер - херовая штука, да и любая большая система - херовая.
зы
есть такое понятие как резонансный эффект, когда при совпадении определенных параметров система работает значительно быстрее, чем обычно (когда параметры не совпадают)
например, если начать читать с винта - по 1кб, по 2кб, по 3кб и т.д., то график будет немонотонный, будут ускорения - когда размер блока будет совпадать с размером сектора (единичного пакета читаемого с винта)
также похожий эффект будет при совмещении двух разных алгоритмов.
возьмем, например, сортировку - пока длина массива маленькая, то выгоднее сортировать одним потоком, если массив большой - то в многопоточку.
при этом определить точную грань, с какого момента выгоднее брать второй алгоритм невозможно, и поэтому обычно грань ставят с запасом в пользу более простого алгоритма.
соответственно, если грань стоит, например, в 1000 элементов, то 999 элементов будет сортироваться медленнее, чем 1000

schipuchka1

ага, а ещё, к примеру может индексирование включиться и сделать всё быстрей.
Только вот почему бы, если n+k строчек обрабатываются быстрей, чем n (за счёт лучшего чтения etc) нам бы не считать n+k строчек, а потом отбросить лишние?

okis

Такое возможно, если это позволяет алгоритм

Dasar

Только вот почему бы, если n+k строчек обрабатываются быстрей, чем n (за счёт лучшего чтения etc) нам бы не считать n+k строчек, а потом отбросить лишние?
во-первых: такое предсказание будет достоверным только в полностью детерминированной системе, чем обычно большая система не является.
во-вторых, такое предсказание должна делать сама программа, исходя из условий работы в данном конкретном месте - но предсказывающий код на текущий момент пишут только в редких случаях (т.к. это дорогое удовольствие с точки зрения разработки)

Marinavo_0507

вы тут что все, упоротые?
ну ладно шпонгле

zorin29

Весь топик ни о чем, мне кажется.
Очевидно же, что алгоритм вполне может немонотонно зависеть от кол-ва "строк" своих входных данных.
Например, простейший алгоритм рекурсивного обхода графа линеен по числу вершин и числу ребер графа. Если граф задать списками инцидентности, то кол-во "строк" входных данных будет равно числу вершин. Соответственно, вполне возможен вариант, когда на 100к "строк" алгоритм работает 1 секунду, а на 50к "строк" - 2 секунды.
Шпонгл запостил график зависимости времени от чего-то, для какого-то неведомого алгоритма. А мы тут пытаемся додумать, что он имел в виду. Толкователи Шпонгла, блин.

val63


Толкователи
Тихо, еще чуть-чуть и мы предскажем конец света

psvpolo

Толкователи Шпонгла, блин.
а вот и разгадка:
http://infostart.ru/public/85812/

sequritiorg

Если ТаблицаПоТоварам.Колонки.Найти("ПодразделениеОрганизации") = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("ПодразделениеОрганизации");
КонецЕсли;

Если ТаблицаПоТоварам.Колонки.Найти("СписанныеПартии") = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("СписанныеПартии");
КонецЕсли;

Если ТаблицаПоТоварам.Колонки.Найти("ДоговорПоставщика") = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("ДоговорПоставщика");
КонецЕсли;

Для Индекс = 1 По 3 Цикл
Если ТаблицаПоТоварам.Колонки.Найти("КорСубконтоСписания" + Индекс) = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("КорСубконтоСписания" + Индекс);
КонецЕсли;
КонецЦикла;

Если ТаблицаПоТоварам.Колонки.Найти("СписыватьПоУказаннойСтоимости") = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("СписыватьПоУказаннойСтоимости", Новый ОписаниеТипов("Булево";
КонецЕсли;

Если ТаблицаПоТоварам.Колонки.Найти("Себестоимость") = Неопределено Тогда
ТаблицаПоТоварам.Колонки.Добавить("Себестоимость");
КонецЕсли;

колвоСтрок = ТаблицаПоТоварам.количество;
если колвоСтрок>400 тогда
ТаблицаПоТоварам2 = ТаблицаПоТоварам.СкопироватьКолонки;

для каждого с из ТаблицаПоТоварам цикл
сс=ТаблицаПоТоварам2.добавить;
ЗаполнитьЗначенияСвойств(сс,с);
индескСтроки = ТаблицаПоТоварам.индекс(с)+1;
дробь=индескСтроки/300;
если окр(дробь) = дробь или индескСтроки = колвоСтрок тогда
УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Заголовок, ТаблицаПоТоварам2, Истина, СтруктураШапкиДокумента.ОтражатьВНалоговомУчетеУСН, Отказ, , СодержаниеПроводки);
для каждого ст из ТаблицаПоТоварам2 цикл //передаем измененную подтаблицу в таблицу..
стт=ТаблицаПоТоварам.найти(ст.номерстроки,"НомерСтроки");
ЗаполнитьЗначенияСвойств(стт,ст);
конеццикла;
ТаблицаПоТоварам2.очистить;
конецесли;
конеццикла;

иначе
УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Заголовок, ТаблицаПоТоварам, Истина, СтруктураШапкиДокумента.ОтражатьВНалоговомУчетеУСН, Отказ, , СодержаниеПроводки);
конецесли;

БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯААААААААААААААААААААААААААААААААААААААААААААААа
1с эта пиздец

schipuchka1

УправлениеОткатамиПартийныйУчет.ДвижениеПартийОткатов(Заголовок, ТаблицаРасценок, Истина, СтруктураШапкиДокумента.ОтражатьВНалоговомУчетеУСН, Отказ, СажатьВТюрьму, СодержаниеПроводки);
Оставить комментарий
Имя или ник:
Комментарий: