|
v7: Как через WMI получить сколько ОЗУ занимает процесс 1Cv77S.exe? | ☑ | ||
---|---|---|---|---|
0
pvase
02.07.12
✎
11:10
|
Идет утечка памяти, надо устранить, было бы хорошо программно контролировать количество всей и виртуальной памяти под текущим процессом 1С. Может кто уже делал похожее подскажите как узнать сколько памяти и виртуальной памяти занимает 1С. Спасибо.
|
|||
1
pvase
02.07.12
✎
11:12
|
Что интересно утечка идет при проведении и отмене проведения. Есть подозрение на создаваемые классы.
|
|||
2
Jaap Vduul
02.07.12
✎
11:15
|
В msdn забанили?
http://msdn.microsoft.com/en-us/library/aa394268(v=vs.85).aspx |
|||
3
pvase
02.07.12
✎
13:35
|
(2) Спасибо, но этот класс показывает только общие данные, а как получить под конкретный процесс?
|
|||
4
pvase
02.07.12
✎
13:37
|
Попутный вопрос, как узнать под каким PID запущен текущий процесс 1С?
|
|||
5
dk
02.07.12
✎
13:41
|
pid текущей 1с тут абрахамс выкладывал
создается дочерний процесс и смотрится на parentPID |
|||
6
Jaap Vduul
02.07.12
✎
13:42
|
||||
7
pvase
02.07.12
✎
13:47
|
(6) Спасибо смотрю.
Заметил одну интересную деталь. Удаление документов в транзакции. Делаю удаление каждые 500 документов, при фиксировании транзакции память не освобождается. Больше того, при закрытии формы объем памяти процесса 1Cv77s.exe уменьшается лишь на немного. Это общий глюк системы или это что то у меня? |
|||
8
Mikeware
02.07.12
✎
13:49
|
(7) Нет, это явная утечка...
|
|||
9
pvase
02.07.12
✎
14:55
|
Вот сделал тест: http://metaprog.co.ua/secrprog/files/WMI_Memory.ert
Только как получить PID текущего процесса 1С так и не понял. |
|||
10
skunk
02.07.12
✎
14:58
|
||||
11
smaharbA
02.07.12
✎
14:58
|
(9)
Попытка глИнфо=СоздатьОбъект("AddIn.V7SysInfo"); ИмяФайлаПрограммы=глИнфо.ИмяФайлаПрограммы; ПолноеИмяФайлаПрограммы=КаталогПрограммы()+ИмяФайлаПрограммы; Исключение Шел=СоздатьОбъект("Shell.Explorer"); ПолноеИмяФайлаПрограммы=Врег(Шел.fullname()); Стр=СтрЗаменить(ПолноеИмяФайлаПрограммы,"\",РазделительСтрок); ИмяФайлаПрограммы=СтрПолучитьСтроку(Стр,СтрКоличествоСтрок(Стр)); КонецПопытки; Локатор=СоздатьОбъект("wbemscripting.swbemlocator"); Сервис=Локатор.ConnectServer(Компьютер,"root\cimv2"); ШелСкрипт = СоздатьОбъект("WScript.Shell"); Выполнение=ШелСкрипт.Exec(""""+ПолноеИмяФайлаПрограммы+""" -embedding"); Процесс=Сервис.Get("Win32_Process.Handle="+Выполнение.ProcessID); ПроцессИД=Процесс.ParentProcessID; Процесс.Terminate(); |
|||
12
pvase
02.07.12
✎
15:51
|
(10,11) Спасибо.
|
|||
13
pvase
03.07.12
✎
16:16
|
Выяснилось что утечка в результате использования turbomd.dll и особенностях ее загрузки (порядок загрузки), подробности на: http://www.1cpp.ru/forum/YaBB.pl?num=1341261665
|
|||
14
Ёпрст
03.07.12
✎
16:41
|
(13) брехня..
|
|||
15
Ёпрст
03.07.12
✎
16:42
|
:)
|
|||
16
Ёпрст
03.07.12
✎
16:42
|
Да.. еще поди и 2008 сервак у тебя ? Или Win7 ?
судя по кодовой страничке.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |