Форум » Для флейма » Помогите протестировать первую xHarbour систему » Ответить

Помогите протестировать первую xHarbour систему

AndreyZh: Уважаемые профи! Наконец перевёл систему на xHarbour (терминальный режим). Если не сложно помогите найти ошибки в её работе (сам уже тестил). Если есть желание, то с удовольствием приму критику в любом виде и отвечу на все вопросы. Система содержит исходный код (+ база очень крупной оптовки за 4 месяца) и варианты Clipper (нужна настройка ОС) и xHarbour (Win32) программ. Для установки скачать в любой каталог и распаковать архив. Все виды паролей - 11. Для создания индексов clipper (s_repair.bat), harbour (srepharb.bat). Справка F1 в любом режиме, инструкции в каталоге document. Для принудительного запуска st.bat (clip)/sth.bat (harb). По системе печати, если интересно - отдельно. Состав комплекса: 1. Оперативная программа. ls.exe (clip)/hls.exe (harb) 2. Администратор и бухгалтерия. la.exe (clip)/hla.exe (harb) 3. Аналитический контур. ldust.exe (clip)/hld.exe (harb) Буду очень благодарен за найденные ошибки и критику в любой форме! Скачка с учётом исправлений всех замечаний на 04.04.2010 (5.92) http://get.freesoft.ru/?id=108083

Ответов - 182, стр: 1 2 3 4 5 6 7 8 9 10 All

Dima: Andrey пишет: Дельный совет ! +1

Петр: AndreyZh пишет: но ещё раз прошу - не хотите реально помочь, тогда и не нужно делать сообщения... Не все зависит от моих "хотелок". Дело в том, что иногда вы пишете информацию, которая не является полной или корректной, иногда откровенные глупости (хочется надеяться, что по незнанию). Все это могут читать и другие новички, и у них может сложиться неправильное мнение. А я все таки модератор Может вас просто забанить, тем самым дав время документацию почитать?

Dima: Петр пишет: А я все таки модератор Боюсь что уже нет


Петр: Спасибо Dima и что мне теперь с эти делать

Dima: Петр пишет: и что мне теперь с эти делать Виртуально пожать руку Pasha и поздравить его тоже с назначением

Петр: Dima пишет: Виртуально пожать руку Pasha и поздравить его тоже с назначением Ок

AndreyZh: Добрый день! Сегодня начал первые тесты у клиентов и был неприятно удивлён! Напомню, что неоднократно тестировал xHarbour приложения, сравнивая по скорости с clipper 5.01 аналогами и на моём ПК (XP Prof, AMD Atlon 3200, 2Gb, SATA 160Gb) вне зависимости от наличия фоновых приложений скорость у xHarbour на ВСЕХ операциях получалась в 2-3 раза выше (в основном БД была меньше 100Mb). Пока установил в 3 фирмах (во всех конфигурациях теста скорость xHarbour, как и 5-8 лет назад на 10-30% НИЖЕ): 1. фирма. Не выделенный сервер, все ПК (XP Prof, примерно класса Celer 2400/512Mb/120Gb). Harbour хуже, как в локальном, так и по сети. БД 300Mb. 2. фирма. Выделенный Windows Server 2005 (крутой). Оперативные режимы и отчёты xHarbour тормознее на 40%. БД 170Mb. 3. фирма. Не выделенный XP Prof (2 ядерный пень), рабочие станции дохлые под Win 98. xHarbour с рабочих станций медленнее на 10-20%. БД 730Mb. Везде фоном были запущенны различные офисные программы 1С, офис, Paint, Browse. Вопросы: 1. Какие версии? Какая может быть причина? Почему у меня скорость xHarbour получалась в 2-3 раза быстрее, чем у Clipper. 2. Кто нибудь сравнивал быстродействие по сети аналогичных программ на Harbour и Clipper с одинаковым типом индексных файлов и большим размером баз данных? Какие результаты? После обеда ещё потестю в паре фирм с очень хорошей техникой, но зоопарком ОС от Win2000-Seven. Но уже "сомневаюсь". Очень надеюсь на Ваши ответы, прогнозы и рекомендации по настройке ОС (пока не смены формата БД).

Pasha: Так в чем заключается проблема ? Раньше тест xHb был быстрее, чем сейчас ? Первое предположение - раньше Вы тестировали на релизе годичной давности, а сейчас собрали на текущей версии. Проверьте это предположение. А конкретно можно что-то сказать, если Вы покажете свой тест.

gfilatov2002: AndreyZh пишет: Очень надеюсь на Ваши ответы, прогнозы и рекомендации по настройке ОС Попробуй разобраться с предназначением/использовать для работы следующую функцию из ядра xHarbour: /* * * Operating system functions for Win32 * * Program to check and set Windows Registry settings * for safe networking - all versions of Windows to XP SP2 * * * Also includes check for buggy VREDIR.VXD under Win95 * and if the correct patch file is found - run it. */ #include "directry.ch" FUNCTION OS_NETREGOK( lSetIt, lDoVista ) LOCAL rVal:= .T., cKeySrv, cKeyWks IF lSetIt == NIL lSetIt:= .F. ENDIF IF lDoVista == NIL lDoVista:= .T. ENDIF IF !lDoVista .AND. OS_ISWINVISTA_OR_LATER() // 06/12/09 changed from OS_ISWINVISTA() * ELSEIF OS_ISWIN9X() rVal:= QueryRegistry( 0,"System\CurrentControlSet\Services\VxD\VREDIR","DiscardCacheOnOpen",1, lSetIt ) ELSE cKeySrv:="System\CurrentControlSet\Services\LanmanServer\Parameters" cKeyWks:="System\CurrentControlSet\Services\LanmanWorkStation\Parameters" lSetIt:= lSetIt .AND. ( OS_ISWINNT() .OR. OS_ISUSERANADMIN() ) // 06/12/09 Only Try to set registry if Admin authority for Win2000 or later // Server settings rVal:= rVal .AND. QueryRegistry( 0, cKeySrv, "CachedOpenLimit", 0, lSetIt ) rVal:= rVal .AND. QueryRegistry( 0, cKeySrv, "EnableOpLocks", 0, lSetIt) // Q124916 rVal:= rVal .AND. QueryRegistry( 0, cKeySrv, "EnableOpLockForceClose", 1, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeySrv, "SharingViolationDelay", 0, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeySrv, "SharingViolationRetries", 0, lSetIt) IF OS_ISWINVISTA_OR_LATER() // // 06/12/09 If SMB2 is enabled then turning off oplocks does not work so SMB2 is required to be turned off on Server rVal:= rVal .AND. QueryRegistry( 0, cKeySrv,"SMB2",0, lSetIt ) ENDIF // Workstation settings rVal:= rVal .AND. QueryRegistry( 0, cKeyWks, "UseOpportunisticLocking", 0, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeyWks, "EnableOpLocks", 0, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeyWks, "EnableOpLockForceClose", 1, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeyWks, "UtilizeNtCaching", 0, lSetIt) rVal:= rVal .AND. QueryRegistry( 0, cKeyWks, "UseLockReadUnlock", 0, lSetIt) IF OS_ISWIN2000_OR_LATER() rVal:= rVal .AND. QueryRegistry( 0, "System\CurrentControlSet\Services\MRXSmb\Parameters","OpLocksDisabled",1, lSetIt ) ENDIF ENDIF RETURN( rVal ) Дополнительно рекомендуется изучить эту ссылку.

Andrey: AndreyZh пишет: Какие версии? Какая может быть причина? Почему у меня скорость xHarbour получалась в 2-3 раза быстрее, чем у Clipper. Все зависит от ваших исходников, т.е. как вы работаете с БАЗОЙ .... Если используете оператор SET FILTER, то в Клипере он быстрей чем на Харборе, из-за его реализации (там присутствует оптимизация по фильтру). Я уже писал об этом. А так как вы тестировали на локальной машине, то и исходники свои не оптимизировали на сеть. Мне пришлось перелопачивать свои исходники и переделывать выборку по базам.... AndreyZh пишет: Кто нибудь сравнивал быстродействие по сети аналогичных программ на Harbour и Clipper с одинаковым типом индексных файлов и большим размером баз данных? Какие результаты? Да я сравнивал. Базы по 300-400 полей. Объем от 60-200 Мб. Выборка из базы (условная индексация) 0.2-10 сек. Если нужно обработать группу записей, то делай выборку (условный индекс) обрабатывай, потом закрывай индекс. Для сети - отказывайся от SET FILTER (под Харбором он медленный ! Читай выше...) и переделывай свой алгоритм обработок. Харбор все равно быстрей чем Клипер даже по сети. У меня задача на 50000 абонентов на Клипере считалась 5-6 часов, а на Харборе тот же самый алгорим считал за 2 часа. Я сам на переделку угробил тоже много времени, но зато сейчас хоть легче стало. Сейчас пытаюсь построить работу с базами так, чтоб можно было перейти на LetoDB.... И буду иметь у себя в задаче СРАЗУ: 1) локальный вариант, 2) сетевой (Файл-Сервер), 3) Терминальный и 4) сетевой (Клиент-Сервер)

Dima: gfilatov2002 пишет: Дополнительно рекомендуется изучить эту ссылку. AndreyZh пишет: Увы - даже с русским языком плохо, с англицких ещё хуже

Dima: Andrey пишет: Если используете оператор SET FILTER, то в Клипере он быстрей чем на Харборе, из-за его реализации (там присутствует оптимизация по фильтру). Я уже писал об этом. У него RDD NTX , о какой оптимизации речь (может я чего пропустил) ?

Andrey: Dima пишет: У него RDD NTX , о какой оптимизации речь (может я чего пропустил) ? Это тогда я пропустил.... Я про свой опыт написал. И еще это относится к Клиперу 5.3 !

AndreyZh: Добрый день! Спасибо за ответы - вечером буду серьёзно думать! Сейчас с админом будет тестить с "крайней" на сегодня конторе, но на первый взляд ситуация аналогична всем предыдущим. Справочно set filter и другие "тормозные" операции не использую, в нескольких режимах есть loca for <> whil <> на десяток записей. Но не в этом суть вопросов. Абсолютно понятно, что оптимизировав алгоритмы, использовав другой формат баз и индесов я получу существенное ускорение, но не о перспективе вопрос. Есть программа (ранее просто массированный ввод и извлечение информации, сейчас перевёл основную систему на xHarbour). Код и механизмы работы с dbf + ntx абсолютно идентичны с сборке на clipper и xHarbour. Тесты дома на базах до 100 mb давали двойное преимущество по скорости программ xHarbour - у клиентов на их сетях, ПК, ОС и базах размера больше 200 mb программа на xHarbour стала (пусть иногда немного) проигрывывать clipper программе.

Andrey: AndreyZh пишет: нескольких режимах есть loca for <> whil <> на десяток записей Переделать на конструкцию: индексный файл + SEEK а уж потом whil <> .... Скорость возрастет !

AndreyZh: Добрый вечер! Я в печали по поведению xHarbour, в моей задаче... Пока о моей задаче в целом (результаты, уже финальных тестов по скорости). Тесты проводились корректно (в начале первый прогон, затем прогон для снятия данных). 1. Локальный ПК. Сложный отчёт. База 90Mb. Замечу, что большое количество записей в некоторых таблицах большой роли не играет (дома перепроверил на фирме с другой спецификой операций): Clipper.. - 1' 35" xHarbour - 40" 2. Рабочая станция, база на сервере, копий проги на других ПК не запущено. База 90Mb, другой (более лёгкий отчёт): Clipper... - 48" xHarbour - 34" 3. Рабочая станция, база на сервере, ЗАПУЩЕНЫ КОПИИ ПРОГИ на других ПК. База 90Mb, другой (более лёгкий отчёт): Clipper... - 3' 12" xHarbour - 8' 24" 4. Локальный ПК. Сложный отчёт. База 560Mb: Clipper.. - 3' 18" xHarbour - 4' 52" 5. Рабочая станция, база на сервере, копий проги на других ПК не запущено. База 560Mb, другой (более лёгкий отчёт): Clipper... - 1' 30" xHarbour - 2' 15" 6. Рабочая станция, база на сервере, ЗАПУЩЕНЫ КОПИИ ПРОГИ на других ПК. База 90Mb, другой (более лёгкий отчёт): Clipper... - 5' 30" xHarbour - более 10 минут. Попытки админа поиграть параметрами сети не привели к коррекции результатов. Из этого делаю вывод, что при малом объеме данных xHarbour более продуктивно использует Ram и различные кэш являясь при этом более медленной системой.

AndreyZh: Попробую ответить на Ваши пожелания. Andrey Переделать на конструкцию: индексный файл + SEEK а уж потом whil <> .... Скорость возрастет ! А як же? Конечно такая конструкция loca for <> whil <> используется при наличии "основного" ключевого поля, при этом условия For плавающее, т.е. индекс нельзя предусмотреть. Dima У него RDD NTX , о какой оптимизации речь (может я чего пропустил) ? Наверное давно активно работали с Clipper 5.01? В него только начали вносить "элементы" технологии RDD для работы с базами/индексами fox, dBase, paradox, а с NTX clipper машина работает напрямую... Полностью на RDD перешли только с 5.2, что резко снизило (на 20-30%) скорость работы, в том числе с индексами NTX (это одна из причин моего отказа от перехода (по основной системе) на "свежии" версии, хотя на другой и сделал переход, т.ч. статистика достаточная).

AndreyZh: Dima gfilatov2002 Техническую документацию понимаю Всё, что описано Григорием уже давно пройденный в исследованиях этап... Andrey Да я сравнивал. Базы по 300-400 полей. Объем от 60-200 Мб. Выборка из базы (условная индексация) 0.2-10 сек. Если нужно обработать группу записей, то делай выборку (условный индекс) обрабатывай, потом закрывай индекс. Не стояла задача оптимизации по скорости - она более чем достаточна.. Просто xHarbour меня сильно соблазнил, тем, что не меняя "ничего" можно резко (в 2 раза повысить скорость приложения). Но этот опыт лишний раз меня убедил, что сравнения систем (баз данных и т.д.) нужно проводить на "пограничных" состояниях и переделывай свой алгоритм обработок Это и является основным способом радикальных ускорений конкретных режимов. Для примера <4. Локальный ПК. Сложный отчёт. База 560Mb: Clipper.. - 3' 18" xHarbour - 4' 52"> годовой анализ рентабельности товаров в зависимости от сезонности. Отчёт "стырил" с навороченной конфы 1С - для сравнимой фирмы (18 8.1 MS Sql) она проводила данный анализ за несколько часов Pasha Так в чем заключается проблема ? Раньше тест xHb был быстрее, чем сейчас ? Нет - выявилась "яма" в скоростных возможностях xHarbour! Здесь облом! Начинается этап пользовательских тестов на устойчивость данных при массированном вводе информации с 3-8 рабочих мест...

Dima: AndreyZh А слабо показать на самодостаточном живом примере что Xharbour работает уступает по скорости Clipper ? AndreyZh пишет: выявилась "яма" в скоростных возможностях xHarbour! Может быть "яма" в ваших алгоритмах ?

Pasha: 1. Я все-таки советую обратить внимание на Harbour. По части совместимости с clipper он сейчас мало в чем уступает, а по некоторым моментам превосходит xHarbour. А по скорости Harbour сейчас превосходит xHarbour в среднем в 2 раза. Об это пишут и разработчики xHb, да я и сам проводил эти тесты. 2. Надо использовать трюк в функции fsCommit в модуле rtl\filesys.c. Об этом здесь многократно писалось. 3. Для совместно открытых файлов используйте блокировку индекса на чтение dbOrderInfo(DBOI_READLOCK,,, .t.) Этот дает выигрыш в производительности в разы.



полная версия страницы