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


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
О лимите количества GDI и USER объектов
16. Мая 2007 :: 12:52
Печать  
Удалось отыскать ссылку на статью, которая на мой взгляд раскрывает тему с per-process и per-station ограничениями по объектам в windows

http://www.sybase.com/detail?id=1019174

Вот с такими кучами

SharedSection=2048,24576,2048


ограничение win2k3 svr на общее число USER объектов около 30K.

мне хватает Улыбка


добавка от fez:
Данная тема возникла в том числе и потому что в плагине vis1cpp существует утечка объектов GDI и USER.
« Последняя редакция: 03. Апреля 2008 :: 09:49 - fez »  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #1 - 16. Мая 2007 :: 12:55
Печать  
Вырываешь из контекста.
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #2 - 16. Мая 2007 :: 13:01
Печать  
trdm писал(а) 16. Мая 2007 :: 12:55:
Вырываешь из контекста.

В смысле? Надо подробнее?

В этой статье описаны ограничения на процесс, и где они устанавливаются.
Секция Desktop Heap отвечает за ограничения в общем на станцию.

Вообще, вся статья полезная и подтверждается результатами тестов.

Я в свое время развернуто ее комментировал на тех форуме, но интереса не это вызвало.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #3 - 16. Мая 2007 :: 13:11
Печать  
Не, не подробнее, просто я так понял тема была о расчете возможного количества подключений с пом. "Сервера приложений для v7". Так сказать разжевывание что и почему.
Думаю эта ветка утонет и оторвется от родительской, а инфа нужная...
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #4 - 16. Мая 2007 :: 13:29
Печать  
trdm писал(а) 16. Мая 2007 :: 13:11:
Думаю эта ветка утонет

Будем говорить прямо: я тоже уверен, что утонет Улыбка Да и х. с ней Улыбка

А по объектам:
В свое время, кажется, я менял значения

HKLM/Software/Microsoft/Windows NT/CurrentVersion/Windows/USERProcessHandleQuota


А сегодня выставил значение в ветке

HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/SubSystems/Windows


в части SharedSection в


SharedSection=2048,24576,2048


Это увеличило лимит объектов в общем на станцию.
Если, конечно, у меня не стало двоиться в глазах с чего-нибудь такого того чего-нибудь Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #5 - 16. Мая 2007 :: 13:30
Печать  
По поводу ограничений на процесс есть еще в МСДН:
http://msdn2.microsoft.com/en-us/library/ms725486.aspx
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #6 - 16. Мая 2007 :: 13:35
Печать  
ИМХО, для обхода этих ограничений можно терминал-сервер использовать. Серверная компонента может запускать одинэсы кучками. Каждую кучку в отдельной терминальной сессии примерно таким образом:
1) Создать терминальную сессию и запустить в ней некий специальный процесс.
2) Специальный процесс запускает по OLE сколько надо одинэсов в кучке.
3) Взаимодействие с главным сервисом происходит либо через TCP/IP, либо через пайпы, либо общую память и т.д.
4) Удаленные машины взаимодействуют с сервисом, который взаимодействует с "сервисом кучки", который уже передает запрос свободному одинэсу из кучки Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #7 - 16. Мая 2007 :: 13:48
Печать  
...
И таким образом нюь васюки превращаются в центр мировой цивилизации Улыбка:)

Кстати, еще один вариант - можно просто попробовать запускать процессы под разными именами пользователей.
ИМХО, десктопы будут разными, вопрос решится сам собой.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #8 - 16. Мая 2007 :: 14:41
Печать  
Миш, я помню в свое время тема GDI обсуждалась на форуме...
Но я не могу понять откуда ноги растут у моей проблемы: под конец дня кол-во GDI объектов для моей сессии приближается к трем тысячам.
Захожу в журнал документов - увеличивается, выхожу - уменьшается, НО на показатель на 1 больше чем перед заходом.

У меня Win2003 TS, несколько сессий пользуют 1С очень активно, к концу дня иногда винды встают колом. Сперва перестает работать отображение тулбаров в любых приложениях, потом винды окончательно нагибаются и вылазит окошко в стиле Win 3.11 с надписью "Requested resource not awailible" и пипец.
Закрываю все приложения жрущие GDI, и все встает на свои места. В основном это Miranda и 1C.

Кто что посоветует?

Может у меня утечка где идет. Где копать?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #9 - 16. Мая 2007 :: 14:43
Печать  
Утечка у тебя и идет....
А вот копать гда, это вопросссс...
  
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #10 - 16. Мая 2007 :: 14:48
Печать  
У меня активно используются активиксы. Предполагаю что в них.
Но в журнале их нет!

А утечки при использовании классов могут влиять на использование GDI?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #11 - 16. Мая 2007 :: 14:49
Печать  
Утечка GDI-ресурсов происходит в 1С-ке и без всяких ВК.
Можешь потестировать.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #12 - 16. Мая 2007 :: 14:54
Печать  
Степ, ну не до 3000 объектов же Печаль
Я просто пытаюсь найти откуда все это ползет у меня. При старте у меня те же 200-300.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #13 - 16. Мая 2007 :: 15:03
Печать  
Arta писал(а) 16. Мая 2007 :: 14:54:
Я просто пытаюсь найти откуда все это ползет у меня.

Ищи какую-нибудь тулзу для определения утечек.
спроси у гугля насчет gdi leaks detection tool
там кстати в пятой ссылке интересная статейка из MS KB: В компьютерах под управлением Windows XP приложения MFC вызывают утечку памяти в объектах GDI

ЗЫ: если подходящая тулза будет найдена и будут подозрения, что утечки в 1С++, то для точного диагноза можно будет погонять тулзу на сборке 1С++ с включенной Debug-информацией.
  

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


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: О лимите количества GDI и USER объектов
Ответ #14 - 16. Мая 2007 :: 15:41
Печать  
Вообще терять объекты можно в разных местах и это очень очень просто Печаль
Даже в svcsvc в свое время была утечка в FilterValue...

Я вроде прямых утечек в самом 1С не нашел, хотя говорят, что они есть.
Мне казалось, что это не утечки, а некий механизм повторного использования хендлов.
Но здесь, конечно, могу запросто ошибаться. Печаль

А уж в АктивИксах так и вообще поймать такую штуку проще простого.

Ну что можно тут делать.
Не должно быть такого, что при открытии-закрытии журнала число объектов постоянно растет.
Может расти 1 раз, а после количество имхо должно стабильно изменяться на некую дельту.

Если именно перманентно растет, надо, видимо, убирать последовательно компоненты и смотреть, что будет.
Поддержу Диму со Степаном, путь это ни разу не легкий Печаль

А вообще как же так?
У тебя юзеры под разными именами в терминалке работают?
Не должны они друг на друга влиять...

А в пределах одной сессии можно попробовать увеличить Desktop Heap, как я написал.
Это в данном случае не спортивно, но зато очень быстро. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать