andrzejn: (Default)
[personal profile] andrzejn
В последнюю неделю-две SQL Server Management Studio 2005 вдруг начала часто и непонятно падать. Проследил проблему до счётчика "GDI Objects" в Task Manager: для процесса SqlWb.exe количество открытых объектов колебалось в районе 9900, а когда подходило к 10000, тогда процесс и падал. Количество это совершенно ненормальное.

Подумав, отключил Windows XP Themes. Счётчик GDI Objects тут же упал до 200-300, всё заработало.

Другие приложения (включая куда более толстые и сложные окна Visual Studio .NET) от этой проблемы не страдают. У коллег всё нормально. Где же и что же я у себя поломал?

Date: Friday, 22 August 2008 09:05 (UTC)
From: [identity profile] snowman-fedya.livejournal.com
я эту службу сразу отключаю нафиг. ибо нефиг.

зависит от конкретной темы. некоторые приложения любят запускать что-то (возможно, треды) в отдельных скрытых окнах, а на эти окна, скомпилённые микрофтовсим си-компилером, расходуются ресурсы как на натуральные, причём закрытие окон ресурсы не высвобождает (если службы "темы" выключена, то освобождает нормально).

Date: Friday, 22 August 2008 10:43 (UTC)
From: [identity profile] snowman-fedya.livejournal.com
тему, небось, другую включил, в которой вызов стандартной функции подменяется на идущий через службу "темы". вот кнопки "закрыть-свернуть-развернуть" в стиле w2k обычно рисуются через gdi, а если повесить тему, скажем, "луна" -- то через службу. вот службовые ресурсы и не выключаются.

у микрософта это частое явление. постоянно их программы "текут". причём это в компилятор "встроено", так что переписывая сам код, от этого не избавишься :( а с профилерами они тем более не возятся

Date: Friday, 22 August 2008 10:50 (UTC)
From: [identity profile] snowman-fedya.livejournal.com
ну, может ещё что-то ставил. или само поставилось :)

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

Date: Friday, 22 August 2008 11:08 (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Лол. Так ведь Region - это просто объединение ректанглов и используется практически исключительно в служебных целях, для неперерисовки окна целиком.

Date: Friday, 22 August 2008 09:32 (UTC)
livelight: (Default)
From: [personal profile] livelight
SqlWb.exe - это SQL-сервер или клиент? А то непонятно, нахрена вообще серверу GDI-объекты.

А вообще, во времена, когда я на голом WinAPI что-то писал, я так толком и не понял, кто и когда эти ресурсы высвобождает. Запросил себе, например, шрифт - и пользуйся им по дескриптору, но вызова "освободить ненужный более шрифт" не предлагалось.

Date: Friday, 22 August 2008 10:19 (UTC)
livelight: (Default)
From: [personal profile] livelight
А вот не помню уже.
(Глянул в сорцы) У меня там был только один Bitmap, который перевыделялся каждый раз при ресайзе окна, и я ему тогда делал DeleteObject(). Больше вроде ничего не удалял. Менюшки контекстные создавал при каждом случае, но никогда не удалял - однако же, ресурсы не утекали вроде никуда.

Profile

andrzejn: (Default)
Андрій Новосьолов

July 2025

M T W T F S S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sunday, 13 July 2025 15:58
Powered by Dreamwidth Studios