WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема Сеть + 1С К предыдущему сообщению На следующее сообщение Бухгалтерский и т.п. софт

Отправил Uz в 11:52 02.06.2003[Ответить]
имеем сеть: 100/10 свитч 3СОМ 8 портов
три компа: 1. АХР1700+ / 256Мб-2700
2. АТВ1000 / 256Мб-133
3. Пень4 1.5 / 256Мб-133
на всех стоит Wхр проф.
на 1-ом база (небольшая ~400Мб все вместе)
Есть подчиненный справочник, при сохранении элемента оного выполняется небольшая процедурка. Так вот если сохраняешь на 1-ом - то время выполнения 1-2-3 секунды, а если на 2-ом -то 25 сек., если на 2-ом и 3-ем вместе тоже 25 секунд, загрузка сети при этом 9-10%
объясните - что за тормоза? можно ли вылечить и как?


Отправил Uz в 14:40 02.06.2003[Ответить]
ЗЫ: в процедурке ничего особенного, просто проверка на дубликат ввода, справочник-то подчиненный. При этом если процедурка не выполняется - то тормоза исчезают.


Отправил mike_ec в 16:09 02.06.2003[Ответить]
Дык, ты процедурку то выложи. В ней скорее всего вся загвоздка...


Отправил Uz в 16:39 02.06.2003[Ответить]
Процедурку выложу (щас в другом месте я), но я думаю не в ней дело, потому как пользователи стали обнаруживать тормоза и в других местах, сеть-то только сделали, вернее вместо коаксиала на пару перешли, когда коаксиал был - вообще труба.
Может это хр-одноранговая сетка тормозит или в протоколах сети добавить чего? Там все по умолчанию сейчас - TCP/IP. Иль могет какойнить 2000Сервер поставить?


Отправил Oldman в 14:43 03.06.2003[Ответить]
Может просто попробовать в терминал все загнать?
У меня стоял Атлон 1300 с 256 метрами на борту и обычным медленным винтом - вытаскивал 6 машин в терминале с торговлей и базой в 1 гиг. Скорость была хорошая.


Отправил Peps в 23:08 03.06.2003[Ответить]
мож. всетаки исходник посмотреть сначала...


Отправил Oldman в 11:37 04.06.2003[Ответить]
Так его никто не выкладывает...


Отправил Uz в 13:34 04.06.2003[Ответить]
Да ладно - будет вам, смотрите, только ничего интересного в ней нет:

Процедура ПриЗаписи()

Если (Владение = Перечисление.Булево.Нет) или
(Владелец.ВтороеЖилье.Получить(ТекущаяДата()) =
Перечисление.Булево.Да) Тогда Возврат КонецЕсли;

СпрЖильцы = СоздатьОбъект(Справочник.Жильцы);
СпрЖильцы.ИспользоватьДату (ТекущаяДата());

СпрЖильцы.ВыбратьЭлементы(0);
Пока СпрЖильцы.ПолучитьЭлемент() > 0 Цикл
Если (СпрЖильцы.ФИО = ФИО) И
(СпрЖильцы.Владение = Перечисление.Булево.Да) И
(Владелец.Код <> СпрЖильцы.Владелец.Код) Тогда
Если СпрЖильцы.Владелец.ВтороеЖилье.Получить (ТекущаяДата()) = Перечисление.Булево.Нет Тогда
Предупреждение(_Какой-то текст длинный_);
СпрЛС.НайтиЭлемент(Владелец); СпрЛС.ВтороеЖилье.Установить(ТекущаяДата(), Перечисление.Булево.Да);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецПроцедуры


Отправил Uz в 13:41 04.06.2003[Ответить]
При замере времени производительности выходит, что 10% всего времени выполнения приходится на функцию
СпрЖильцы.ПолучитьЭлемент(),
а 89,5% - на условие, сразу после вышеуказанной функции,
и всего 0,5% на все остальное.
Количество циклов на это условие - 4315.
Целерон 800/100 с 256 на борту , локально тянет всю эту бяку 10 сек. АХР1700/266 с 256 - примерно 2-3 сек.


Отправил lyonchik в 15:01 04.06.2003[Ответить]
Просветите неграмотного плиз - это не псевдо-код? Так натурально на 1С пишут?


Отправил Uz в 15:25 04.06.2003[Ответить]
Отнюдь :)))
Это так 1С-ники общаются друг с другом, и иногда, конечно, с компьютером :)))
Шутка, есссно....
Когда я в 1999 году увидел, как пишут модули в 1С, мне чуть дурно не стало от такого обилия русского языка в исходнике (в первый раз кажется полным извратом - правда?), после стольких лет общения с исходниками других языков на английском...
Но человек ко всему привыкает, называй как хочешь. Если не нравится - можно на аглицкие синонимы перейти...


Отправил Oldman в 09:15 05.06.2003[Ответить]
А ты бы как хотел писать? Попробуй этот код повторить на паскале... хотя бы просто перевести в англоязычные команды. А если такого кода десятки тысяч строк? Сума сойдешь без русского.


Отправил krasnoshapka в 17:55 04.06.2003[Ответить]
На кой хрен ты при записи врубаешь перебор справочника? Используй НайтиПоРеквизиту(). Предварительно включив сортировку по этому реквизиту.


Отправил Uz в 08:45 05.06.2003[Ответить]
Большое спасибо за совет, хотя НайтиПоРеквизиту() здесь не прокатит, но ты навел меня на грандиозную мысль, пустая я башка, изменил одну(!!!) строку и время выполнения упало до безобразия >1 сек. на целе 800 (меньше чем в 1000 раз), впредь буду внимательнее. Какую - говорить не буду, и так все ясно :)))


Отправил MIIB в 12:33 05.06.2003[Ответить]
Во всяком случае, в больших циклах первичные условия стараются не писать с логическими коньюнкциями, дизъюнкциями...
Короче, смотришь, по какая часть условия - основная - ту ставишь в первое условие, а остальные так же по приоритету...
->Если (1)и(2)и(3) Тогда
заменяется на
->Если (1) Тогда
Если (2) Тогда
Если (3) Тогда
Так гораздо оптимальнее...


Отправил Uz в 12:34 05.06.2003[Ответить]
Дело было не в бабине (с)


Отправил MIIB в 12:00 06.06.2003[Ответить]
А я и не вдавался, просто посоветовал условий таких не делать;-)


Отправил Uz в 13:55 06.06.2003[Ответить]
Я не думаю, что такие подходы имеют различное время исполнения, как известно булевы функции занимают меньше всего остального машинное время, время тратится на поиск переменных, а само выполнение функции не занимает ни одного такта.


Отправил Uz в 12:33 05.06.2003[Ответить]
т.е. естественно <1сек, а точнее ~0.01сек
совсем заработался :))))))


Отправил Uz в 13:47 04.06.2003[Ответить]
У меня на новелле база хорошо крутится с 10 клиентами - Никаких проблем, тормозов и прочее, вот поэтому и думаю что одноранговая сеть - кака, думал могет кто переубедит, а они все в конфе ковырятся давай скорее, 99% не в ней проблема ИМХО.


Отправил Magic Eagle в 02:19 05.06.2003[Ответить]
А что ты хочешь? XP сделал файловым сервером. У виндов только win2003 server под это дело заточен, а так новелл или линукс. Тормозить будет обязательно. Если на отдельный сервер денег нет - поставь на первую машину W2K server, на нем и будешь работать, а клиенты через терминал будут заходить.


Отправил mike_ec в 07:39 05.06.2003[Ответить]
Только на всякий случай памяти докинь еще хотя бы 256Мб, а то на тяжелых отчетах может в своп залезать.


Отправил Uz в 08:51 05.06.2003[Ответить]
Я с виндовыми серверами дела не имел, подскажи, а NT4 вроде тож может? или всеже В2К сервер лучше?


Отправил Peps в 11:51 05.06.2003[Ответить]
4.0 хуже только тем, что ресурсов сожрет меньше...


Отправил Uz в 12:36 05.06.2003[Ответить]
и сервер только с НТФС будет работать , так?


Отправил Magic Eagle в 14:56 05.06.2003[Ответить]
тогда NT4 нужен с TSE


Отправил Peps в 23:55 05.06.2003[Ответить]
да будет... :) на три то машины и терминал... конфу нужно оптимизировать.


Отправил Peps в 00:09 06.06.2003[Ответить]
почему? но с ntfs лучше. пенек второй или целерон слабенький, мозгов 128 хватит, кластер побольше делай, кубика 32 (в 1с маленьких файлов нет), останови сервисы ненужные, там всякию фигню, типа записи времени последнего обращения файлу, и телемаркет. ну и конфу оптимизировать...
p.s. у самого в одной конторе до неавнего времени стоял пень-2 350, 128 мозгов, винты ide. ненапрягаясь тащил 15 юзеров, 10 активных. поменял из этических соображений... :)


Отправил Uz в 10:33 06.06.2003[Ответить]
Всем спасибо за советы, будем работать над этим. Одноранговая сеть не катит, будем менять.


Отправил Magic Eagle в 23:50 06.06.2003[Ответить]
Если просто документы закалачивать, то сойдет любой. А дойдет дело до навороченных аналитических отчетов по этим документам (иногда по 6-7 группировок), то и одному тесно будет. У меня тоже были 7 юзеров на НТ4, но ради скорости формирования отчетов поставил цитрикс и W2K, все довольны.


Отправил CAHbKA в 01:20 03.06.2003[Ответить]
железки 3COM обычно умеют 802.1p, а XP умеет это подхватывать, может влиять. Выключить можно так: http://www.3dnews.ru/reviews/software/win-xp-faq/index08.htm#5