Переключение на Главную Страницу Страницы: 1 2 [3]  ОтправитьПечать
Очень популярная тема (более 25 ответов) О лимите количества GDI и USER объектов (число прочтений - 59962 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #30 - 18. Мая 2007 :: 11:33
Печать  
А... вон оно как устроено Улыбка
Тады ой...
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #31 - 28. Ноября 2007 :: 09:59
Печать  
Arta писал(а) 18. Мая 2007 :: 09:43:
Приехали. Сам дурак получается. Видел же оговорку Печаль


Всем спасибо, посыпаю голову пеплом.


А ведь ты - power user   Смех ну это я так в шутку, чур без обид. Очень довольный
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #32 - 28. Февраля 2008 :: 09:11
Печать  
Мне помогло вот это решение - добавить ТЗ на форму отчета - для устранения проблемы вылетов 1С, связанных с превышением количества объектов USER. Решение взято отсюда:

trad писал(а) 30. Августа 2007 :: 07:23:
Я однажды поимел проблем из бага в 1С.
Но тогда росло количество объектов USER.
Выглядит это так: открываешь форму отчета/обработки, закрываешь - получаем +2 к USER
Если такая форма открывается ОЧЕНЬ часто (а у меня это была форма ввода количества при подборе), то объекты в конце концов кончаются и это вело либо к падению 1С в методе CGetDoc7::LayoutControl либо к полному зависанию винды. Было установлено что "утекают" менюшки.
Решается проблема добавлением на форму обработки ТЗ (пусть даже не видимой).
Отличие в том, что, при наличие ТЗ на форме обработки, меню "Действия" расширяется набором пунктов от ТЗ.
И замечено что почти все возможные в 1С формы содают меню "Действия" более чем из одного набора пунктов. Кроме формы обработки/отчета без ТЗ - в этом случае меню из одного набора.
Косяк я думаю в работе CMenu7.


В течение года не мог разобраться, почему вылетают роботы на 1С (у меня их было 3 штуки). Эти роботы периодически запускали отчеты для всяхк нужд. Соответственно каждый запуск увеличивал число USER и в неопределенный момент происходил вылет базы. Пришлось тогда даже сделать проверку на "живость" (в смысле - живой-не живой) робота - кажый робот проверял двух остальных. В случае "неответа" - робот перезапускал базу другого.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #33 - 28. Февраля 2008 :: 10:08
Печать  
Содержимое данного сообщения было перенесено СЮДА.
  
Наверх
www  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #34 - 31. Июля 2008 :: 11:33
Печать  
Хочу вернуться к больной теме - утечке по GDI при использовании активиксов.

При использовании активиксов на форме после закрытия формы счетчик объектов GDI стабильно растет.
Величина прироста зависит только от навороченности активикса и является постоянной. Ну не могут же активиксы от разных производителей все поголовно течь.
Грешу все-таки на АктивИкс (Степан, прости, если не прав Улыбка).
При очень активной работе юзеров с такими формами ситуация получается очень нехорошая.
В клинических случаях даже пришлось увеличить лимит на количество объектов GDI.

Очень хочется проблему решить. Прошу помощи у тех, кому это тоже мешает.
И еще. Чем можно посмотреть количество объектов GDI в чужой терминальной сессии?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #35 - 31. Июля 2008 :: 12:11
Печать  
vip писал(а) 31. Июля 2008 :: 11:33:
И еще. Чем можно посмотреть количество объектов GDI в чужой терминальной сессии?

Секретная прога - taskmgr.exe Улыбка
Говоришь показать процессы от всех юзверей, добавляешь колонку с GDI и сортируешь по наименованию.
1cv7s.exe будет сверху Улыбка


P.S. Рядом есть еще колонка с именем пользователя.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #36 - 31. Июля 2008 :: 12:13
Печать  
vip писал(а) 31. Июля 2008 :: 11:33:
Грешу все-таки на АктивИкс (Степан, прости, если не прав Улыбка).


Парт задание - опоить Степана пывом до синих огурцов. После этого на утро сказать ему, что он поклялся к вечеру все исправить.

P.S. GDI тоже уже в печенках Печаль
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #37 - 31. Июля 2008 :: 12:18
Печать  
Arta писал(а) 31. Июля 2008 :: 12:11:
vip писал(а) 31. Июля 2008 :: 11:33:
И еще. Чем можно посмотреть количество объектов GDI в чужой терминальной сессии?

Секретная прога - taskmgr.exe Улыбка
Говоришь показать процессы от всех юзверей, добавляешь колонку с GDI и сортируешь по наименованию.
1cv7s.exe будет сверху Улыбка


P.S. Рядом есть еще колонка с именем пользователя.

Издеваешься на дедом? Улыбка
В чужих сеансах показывает ноль. Потому и спросил.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #38 - 31. Июля 2008 :: 12:20
Печать  
Arta писал(а) 31. Июля 2008 :: 12:13:
vip писал(а) 31. Июля 2008 :: 11:33:
Грешу все-таки на АктивИкс (Степан, прости, если не прав Улыбка).


Парт задание - опоить Степана пывом до синих огурцов. После этого на утро сказать ему, что он поклялся к вечеру все исправить.

P.S. GDI тоже уже в печенках Печаль

Последний раз он меня самого видел в форме синего огурца Очень довольный
  
Наверх
ICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #39 - 04. Августа 2008 :: 14:34
Печать  
vip писал(а) 31. Июля 2008 :: 11:33:
Хочу вернуться к больной теме - утечке по GDI при использовании активиксов.

При использовании активиксов на форме после закрытия формы счетчик объектов GDI стабильно растет.
Величина прироста зависит только от навороченности активикса и является постоянной. Ну не могут же активиксы от разных производителей все поголовно течь.
Грешу все-таки на АктивИкс

Сделал простой тест:
пустая конфигурация без загруженных ВК (вообще никаких!!)
внешняя обработка с парой кнопок
система WinXP Pro SP2
Несколько раз открыл/закрыл обработку
посмотрел счетчик GDI
еще один раз открыл/закрыл обработку
посмотрел GDI - счетчик увеличился на 6, и так при каждом открытии/закрытии

Повторил то-же самое под DPlus instrumentation.
Нашел источник утечек - uxtheme.dll
Выполнил в консоли
Код
Выбрать все
net stop themes 


Повторил вышеуказанные действия.
Утечек не обнаружил.

В тестовой конфе добавил загрузку 1С++ (версия 3.0.1.10) и в тестовой обработке добавил создание на форме контрола OWC.Spreadsheet (специально выбрал контрол понавороченнее).
Утечек GDI-ресурсов не обнаружил.

Вот такой вот детектив.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #40 - 04. Августа 2008 :: 14:38
Печать  
И еще раз приведу ссылку на статью в MS KB: В компьютерах под управлением Windows XP приложения MFC вызывают утечку памяти в объектах GDI
Цитата:
При запуске приложений MFC (библиотеки базовых классов Microsoft) в компьютере под управлением Microsoft Windows XP с пакетом обновления 2 (SP2) происходят утечки памяти объектов GDI при создании или удалении дочерних окон. Чтобы увидеть утечки памяти, посмотрите GDI-объекты процесса в диспетчере задач.

Подобные проблемы возникают также в компьютерах под управлением Windows Server 2003 при запуске службы тем. В Windows Server 2003 служба тем отключена по умолчанию.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #41 - 04. Августа 2008 :: 14:52
Печать  
Степ, у меня 1С вертится на Win2003, а на XP давно уже SP3.

Кроме того в терминал-сервере по умолчанию темы отключены.

P.S. Эту причину проблемы знаю Подмигивание
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #42 - 03. Ноября 2009 :: 14:12
Печать  
Нашел временное решение - если в конфигураторе, после открытия конфигурации, запустить процедуру Intellisense Update1CppInts (которая просто открывает и закрывает формы модулей КОП), то количество GDI объектов резко падает до 300-400 штук.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Bob
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 24. Июня 2010
Re: О лимите количества GDI и USER объектов
Ответ #43 - 10. Февраля 2011 :: 08:16
Печать  
Была такая проблема...
Если перед открытием обработки вызывать СтатусВозврата(0),
то количество объектров не растет!
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #44 - 10. Февраля 2011 :: 08:51
Печать  
Bob писал(а) 10. Февраля 2011 :: 08:16:
Была такая проблема...
Если перед открытием обработки вызывать СтатусВозврата(0),
то количество объектров не растет!

Ну если это сделать перед открытием в ПриОткрытии(), то конечно не растет, т.к. обработка не откроется Улыбка
Подробней, пожалуйста.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 
ОтправитьПечать