Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как уменьшить размер программы 
V
    Опции темы
Akina
Дата 18.5.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Тутанхамец @  18.5.2006,  08:36 Найти цитируемый пост)
Есть какой-то апишный способ, чтобы различить автономные и общие? 

Конечно нет. Есть возможность определить твой процесс вызвал его (модуля) загрузку или он и раньше мотался в памяти - посмотреть дерево парентов процессов от исполняемого файла. Но пойми правильно - если некие общие модули не были загружены ранее, то при загрузке первый раз системе потребуется выделить больше памяти чем после выхода и повторной загрузки - ну и какую из цифирей считать "потреблением"?

Добавлено @ 11:25 
Полюбопытствуй что выводит скажем процессэксплорер Руссиновича - он в первом приближении дает иерархию... построить такую несложно, как и анализировать. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Walera
Дата 19.5.2006, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



Мне бы хотелось еще узнать почему код
Код

Shell App.Path & "\Schetchik.exe"


работает не коректно. в результате его выполнения программа Schetchik запускается, но не работает если Schetchik запускать через автозапуск или через проводник то все нормально. Почему? 
PM MAIL   Вверх
Naghual
Дата 19.5.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



А может быть проблема в Schetchik.exe? 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Тутанхамец
Дата 19.5.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Цитата

Полюбопытствуй что выводит скажем процессэксплорер 


Да, в ПроцессЭксплорере это как-то нагляднее...

В общем, с процессами всё не так просто, как я думал до этой темы. 

Цитата

ну и какую из цифирей считать "потреблением"?


Хорошо, что пока нет необходимости.  smile 

Спасибо, Акина. 
PM MAIL   Вверх
Walera
Дата 20.5.2006, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



Цитата(Naghual @  19.5.2006,  08:48 Найти цитируемый пост)
А может быть проблема в Schetchik.exe?  


Нет, если его запускать через проводник программа работает без проблем. Без проблем она работает если ее поместить в автозапуск, а через Shell она не работает. единственное что я заметил так это то что она вся не разворачивается и если верить диспетчеру задач то весит всего 1,5 Мб при 4,5 Мб в нормальном режиме

на счет экспортируемых модулей самой простой программе достаточно только модуля MSVBVM60.dll. 

MSVBVM60.dll при работе экспортирует себе:
kernel32
гser32
ntdll
gdi32
advapi32
ole32
loeaut32
rpcrt4
msvcrt

вот это и есть минимально загружаемый список модулей  

Это сообщение отредактировал(а) Walera - 20.5.2006, 05:04
PM MAIL   Вверх
Тутанхамец
Дата 20.5.2006, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Цитата

весит всего 1,5 Мб при 4,5 Мб в нормальном режиме


Возможно, разница возникает из-за того, что, как тут уже не раз говорилось, dll в памяти бывают автономные и общие? Твоя вызывающая программа подгружает их, а счетчик пользуется. А иначе ему самому приходится их подгружать, если они еще не загружены... 

Цитата

программа Schetchik запускается, но не работает 


А как он должен работать? Так или иначе, надо счетчик смотреть. Если он запускается, то с Shell, имхо, спроса нет. 

Код

If IsConnected Then
    If Not status Then
        status = True
        Shell App.Path & "\Schetchik.exe"
    End If
Else


Может твой счетчик просто не умеет работать, когда isconnected?.. Неправильно, скажем, юзает подключение. 

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


  

Это сообщение отредактировал(а) Тутанхамец - 20.5.2006, 08:41
PM MAIL   Вверх
Walera
Дата 22.5.2006, 05:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



Ура, проблема решена. 
Счетчик работает нормально все дело было в Shell, если не указывать второй параметр данной функции, то программа запускается в скрытом режиме, следовательно я ее не вижу и по этому решил что программа не работает. 
Всем спасибо.

Добавлено @ 05:30 
Да кстати в скрытом режиме программа занимает в 2-3 раза меньше памяти чем в обычном. 
PM MAIL   Вверх
Тутанхамец
Дата 22.5.2006, 06:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Хотя тема и закрыта, я всё равно добавлю. Просто я особо раньше не думал над этим, а тут заинтересовался. 
Код


Private Sub Command1_Click()
Shell "notepad.exe", vbHide
End Sub

Private Sub Command2_Click()
Shell "notepad.exe", vbMaximizedFocus
End Sub

Private Sub Command3_Click()
'по умолчанию так же
Shell "notepad.exe", vbMinimizedFocus 
End Sub

Private Sub Command4_Click()
Shell "notepad.exe", vbMinimizedNoFocus
End Sub

Private Sub Command5_Click()
Shell "notepad.exe", vbNormalFocus
End Sub

Private Sub Command6_Click()
Shell "notepad.exe", vbNormalNoFocus
End Sub

Private Sub Command7_Click()
'без параметров, то же, что и vbMinimizedFocus 
Shell "notepad.exe"
End Sub



Запустил шесть блокнотов. Размеры в диспетчере задач разные. У шестого был приблизительно 700 kb, а у первого 2 гига с чем-то. Начал их убирать. При удалении одного процесса меняется (увеличивается) размер других.  
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1048 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.