Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Ресурсы Добавлено: 20.07.05 12:36  

Автор вопроса:  Stef
Программа писана под VS net 2005.
Обьем =575кило.
При загрузке хавает 42метра но при активной работе (открытие файлов Ворд Ехель ... из программы)доходит до 250а то и больше - а это уже не хухры-мухры, на машинах послабее начинает виснуть, да и "другие" нехило грузит.
Вопрос: Как с этим бороться, может нужно какие-то процессы выгружать и.т.п. Если можно опишите поподробнее с примерами.
СЕНКС АЛЛ

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 20.07.05 13:13
Посмтрите FAQ на gotdotnet.ru в форуме WinForms.

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 20.07.05 13:47
http://www.gotdotnet.ru/DotNet/FAQ/CommonForum/Interop/524.aspx
На самом деле, это не память, реально «отъедаемая» вашим приложением, а так называемое «рабочее множество» (working set; такой перевод устоялся довольно давно). Рабочее множество – термин из теории операционных систем, и означает он совокупность страниц памяти, используемых процессом в стационарном состоянии. То есть, проще выражаясь, это память, отложенная процессом «про запас». Вообще говоря, как правило большинство приложений не использует все свое рабочее множество, оно устанавливается операционной системой при запуске «на глазок» (упрощенно конечно), а если приложение требует больше памяти, рабочее множество автоматически расширяется.

 Ну и шифры. Это он про что, про кучу что ли (Heap commit size и Heap reserve size)?

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 20.07.05 13:57
 Похоже что всё таки нет, т.к. .NET использует PE EXE файл только в качестве стуба (stub). :)

Ответить

Номер ответа: 4
Автор ответа:
 dma_caviar



Вопросов: 0
Ответов: 6
 Профиль | | #4 Добавлено: 20.07.05 14:16
Ну и до какого размера вручную память урезать.
Да и это что же по таймеру делать что ли, ведь она потом опять "разбухнет"?

Ответить

Номер ответа: 5
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 20.07.05 14:30
"Урезать" достаточно один раз.

Ответить

Номер ответа: 6
Автор ответа:
 Stef



Вопросов: 16
Ответов: 17
 Профиль | | #6 Добавлено: 21.07.05 17:59
Просьба к Павлу и другим.
Если у Вас есть етот модуль (для урезания) выложите так как нашел по
http://www.gotdotnet.ru/DotNet/FAQ/CommonForum/Interop/524.aspx
переписал с Си:

...
Inherits System.Windows.Forms.Form
Inherits System.Runtime.InteropServices
...
вот другую на строку мне и кидает ошибку, не могу разобраться в чем дело. Помогите кто чем может

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 22.07.05 11:01
Что-то ты не так переписал... Класс не может наследоваться от двух классов: множественное наследование ни в VB ни в VC# не реализовано.

Найи/скачай программу C# To VB.NET Converter. Она умеет переводить код с C# на VB. Весит около 6 Мб, я ее брал в VB .Net Resource Pack, но может и отдельно в интернете валяется.

В крайнем случае можно просто этот класс на C# скомпилировать в .NET Class Library и прицепить к проекту на VB, хотя это немного громоздко получится.

Ответить

Номер ответа: 8
Автор ответа:
 Stef



Вопросов: 16
Ответов: 17
 Профиль | | #8 Добавлено: 22.07.05 13:23
К Павлу.
Сделал так:
Public Declare Function SetProcessWorkingSetSize Lib "kernel32" (ByVal handle As IntPtr, ByVal minimumWorkingSetSize As Integer, ByVal maximumWorkingSetSize As Integer) As Boolean 'для сброса памяти
    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess.Handle, -1, -1)
           End Sub

Нажимаю на кнопочку-урезает, но со временем опять разбухает.
Сейчас это обосуждается в теме"Помогите с переводом ". После дебатов с dma_caviar мы пришли к выводу о "нужности цикла", или есть другой путь?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам