Результаты тестирования системы FBP System 98L



Posted by Васеленко Сергей, Фирма КАРДИНАЛ on December 27, 1998 at 13:04:59:

In Reply to: О стиле программирования и использовании фактов posted by Васеленко Сергей, Фирма КАРДИНАЛ on December 27, 1998 at 13:02:35:

Выше в сообщении описаны приемы программирования, которые используются в Фирме "КАРДИНАЛ" для написания конкретных систем.

Ниже описаны результаты тестирования системы FBP System 98L.

Данны теста:
10 000 операций прихода (без скобок)
90 000 операций продажи (без скобок)

Каждые 20 операций оприходования и продажы сгруппированы в накладные и обрамлены скобками.
Т.е. реально операций за период 110 000.

Документов: 10 000/20= 500 приходных, 90 000/20 = 4 500 расходных
Все номера последовательно возрастают.

Разбивка по месяцам в тысячах чистых операций (0,5,5,10,10,15,15,10,10,10,10). Итого 11 месяцев.

План счетов

41.10 Товары (синтетический счет для всех товаров)
60 Поставщики
62 Покупатели
_41 Товары (справочник товаров, в корреспонденциях не участвует)

Товары 1000, 1000 задействовано
Поставщики 1000, 100 задействовано в тесте
Покупатели 1000, 900 задействовано в тесте

Кроме месяцев по 5 тыс. операций во всех месяцах по 20 рабочих дней.

В каждом месяце менялось количество задействованных товаров, поставщиков, покупателей.
Для того, чтобы можно было сделать выводы о росте потребностей в ресурсах.

Настройка использует экстра-параметры и факты. База данных не используется.

Для товаров хранятся следующие параметры:
[get *N1,'Q'] остаток на предприятии в количестве
[get *N1,'S'] остаток на предприятии по себестоимости
[get *N1,[ep @WH]] остаток на складе @WH в количестве

Других экстра-параметров нет.

Факты:

* Факт проводок. Замена стандартным ta-фактам.
*
* 1 2 3 4 5 6 7 8 9 10 11
* G1,G2,G3, D1,D3,D4,D6, K1,K3,K4,K6
Entry %, %, %, %, %, %, %, %, %, %, %
*****
* Обшие переменные проводки
*****
* G1 Штамп операции [stamp 3]
* G2 Сумма проводки
* G3 Тип документа
*****
* Переменные "Дебет счета"
*****
* D1 Балансовый счет
* D3 Документ
* D4 Сумма
* D6 Аналитический код
*****
* Переменные "Кредит счета"
*****
* K1 Балансовый счет
* K3 Документ
* K4 Сумма
* K6 Аналитический код

* Факт для построения счетов-фактур и книги продаж
* 1 2 3 4 5 6 7
* CU, L, N, Q, S ND AC
Отгрузка %, %, %, %, %, %, %
*
* CU Код покупателя
* L Номер документа основания
* N Код ТМЦ
* Q Кол-во
* S Сумма
* ND В т.ч. НДС
* AC В т.ч. акциз

Другие факты не генерировались.

Каждая операция прихода, это два Entry для
Дт 41.10 Кт @60
Дт 19.08 Кт @60

Каждая операция расхода:
fact Отгрузка
и три Entry для
Дт @62 Кт 46041
Дт 46041 Кт 68.02
Дт 46041 Кт 41.10

Факты нужны для построения анализа бухгалтерских счетов, накладных, счетов-фактур, оборотной ведомости по товарам, ведомости продаж, журналов-ордеров по датам и документам и т.д.
Формы включены в тест и работают.

Во второй фазе теста, вызов фактов был отключен. Это моделирует ситуацию с закрытием периода.

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

Сервер стартовал 12 раз, начиная с состояния без операций.
Каждый раз добавлялся один месяц.
На каждом этапе фиксировались время старта и объем требуемой памяти.

Есть полная статистика в формате Excel 5.0.

Ниже приведены данные за 11 месяцев.

Время сбивки 110 000 операций (со скобками)
с фактами 10 минут
без фактов 7 минут

Сервер: FNT10 версии 2.35 на P133 c 32М под Win95.

Сервер работал в режим old c выделением под контекст 96М (т.е. обязательно был своп).

--------------------------------------------------------------------
Статистика сервера. Месяц: 11
с фактами
--------------------------------------------------------------------

Распpеделение полезной памяти в базе D', байт:
Пеpеменные: 79976 0.2%
Счета и субсчета (4033): 989317 2.1%
Индексы счетов и субсчетов: 184925 0.4%
Экстpапаpаметpы: 4533073 9.5%
Индексы экстpапаpаметpов: 43823 0.1%
Стpуктуpы для фактов: 41420458 86.8%
Таблица коppеспонденций: 453724 1.0%

Итого: 47705296 100.0%

Деpево и файлы-коэффициенты: 6192
Скомпилиpованные фоpмы: 666175
Индексы опеpаций: 1590758
Индексы для sed и ged: 581

Требуется в режиме old 49969002
Требуется в режиме dual 97674298

--------------------------------------------------------------------
Статистика сервера. Месяц: 11
без фактов
--------------------------------------------------------------------

Распpеделение полезной памяти в базе D', байт:
Пеpеменные: 79976 1.3%
Счета и субсчета (4033): 989317 15.5%
Индексы счетов и субсчетов: 184925 2.9%
Экстpапаpаметpы: 4533073 71.1%
Индексы экстpапаpаметpов: 43823 0.7%
Стpуктуpы для фактов: 94758 1.5%
Таблица коppеспонденций: 453724 7.1%

Итого: 6379596 100.0%

Деpево и файлы-коэффициенты: 6192
Скомпилиpованные фоpмы: 666175
Индексы опеpаций: 1590758
Индексы для sed и ged: 581

Требуется в режиме old 8643302
Требуется в режиме dual 14928140


ВЫВОДЫ ПО РЕЗУЛЬТАТАМ ТЕСТА

Выводы основаны на полных результатах. Выше приведены выдержки.

Расчеты памяти каждого механизма были освещены на доске. Мы хотим показать данные расхода на системе со 100 000 операций. Причем в тесте были выбраны жесткие условия для работы системы.

Система, использующая стандартные механизмы ФБП, для 100 000 операций, 1000 товаров, 900 покупателей, 100 поставщиков, требует от 20 до 100 М физической памяти компьютера в режиме dual.
В максимуме это сервер со 128М памяти.

Рекомендовать можно формулу: 20М + 8М на каждые 10000 незакрытых операций.
Для 5 месяцев по 10 000 требуемый объем составляет 20+40=60М.

Время сбивки на системе P133 c 32 М - 10 мин (10000 оп.в мин).

Можно предположить, что на P200 c 128М, время сбивки будет около 5 минут (20000 оп.мин).


1. В расходовании памяти можно выделить следующие категории:
- системная информация
- настройки пользователя
- информация о плане счетов
- корреспонденции
- хранение индексов экстра-параметров
- хранение значений экстра-параметров
- хранение фактов
- хранение индексов для sed и ged
- хранение значений для sed и ged

2. Системная информация

Пеpеменные: 79976 1.3%
Можно игнорировать.
Индексы опеpаций: 1590758
На 10 000 операций прирост 159К. Можно игнорировать.

3. Настройки пользователя

Деpево и файлы-коэффициенты: 6192
Скомпилиpованные фоpмы: 666175

Занимают известный фиксированный объем.
Зависит от качества написания настроек. При использовании процедур объем памяти очень уменьшается. У нас при переходе с 2.24 на 2.32 уменьшился с 20М до 2М.

4. Информация о плане счетов

Счета и субсчета (4033): 989317 15.5%
Индексы счетов и субсчетов: 184925 2.9%

В общем,для большинства систем можно считать 1М (4000 тысяч объектов учета).

5. Корреспонденции

Таблица коppеспонденций: 453724 7.1%

Мелочи.
Правда при выделении товаров на отдельный забалансовый справочник.

6. Хранение индексов экстра-параметров

Индексы экстpапаpаметpов: 43823 0.7%

Мелочи. Данные для 1000 товаров и 3 параметров по каждому.
Прирост наблюдается при росте количества товаров и объектов учета.

7. Хранение значений экстра-параметров

Экстpапаpаметpы: 4533073 71.1%

Мелочи для 100 000 операций.
Прирост в 480К для 20 дней ежедневной продажи каждого 500 товаров .

8. Хранение фактов

Факты включены
Стpуктуpы для фактов: 41420458 86.8%

Факты отлючены:
Стpуктуpы для фактов: 94758 1.5%

Самый требовательный к памяти механизм.
10 000 операций покупки-продажи в пропорции 1:9 требуют 4 139 К на контекст или почти 8М в режиме dual.

Факты можно отключать, если период закрыт.
Желательно это делать не операцией с erase, а операцией в начале месяца, которая подавит само порождение фактов.
Это возможно, если сами файлы-коэффициенты не опираются на факты. Только отчетные формы.

Применение такого механизма позволит держать факты только для активных месяцев (предыдущий квартал + 2 текущего = 5).

9. Хранение индексов для sed и ged
10. Хранение значений для sed и ged

Не тестировались.



Пpишедшие ответы: