Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как снизить размер памяти под процесс ??? Добавлено: 10.04.06 20:45  

Автор вопроса:  AlexDerS
Написал небольшую программку в Visual Basic 2005 Express Edition.
Сама программа размером 1.2 Мб

Почему она когда запущена занимает 22 Мб виртуальной памяти?

Есть ли возможность уменьшить этот размер?

Ответить

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

Номер ответа: 1
Автор ответа:
 trialist



Вопросов: 14
Ответов: 76
 Профиль | | #1 Добавлено: 10.04.06 20:51
А что за программа, ты в ней большие БМП-картинки на форму не грузишь?

Ответить

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



Вопросов: 14
Ответов: 76
 Профиль | | #2 Добавлено: 10.04.06 20:52
А что за программа, ты в ней большие БМП-картинки на форму не грузишь?

Ответить

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



Вопросов: 14
Ответов: 76
 Профиль | | #3 Добавлено: 10.04.06 20:52
А что за программа, ты в ней большие БМП-картинки на форму не грузишь?

Ответить

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



Вопросов: 14
Ответов: 76
 Профиль | | #4 Добавлено: 10.04.06 20:53
Сори за копии, спасибо Билу за Експолерер

Ответить

Номер ответа: 5
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #5 Добавлено: 10.04.06 21:17
Программа использует Microsoft Internet Transfer Control (совсем немного)
3 формы.
иконка в трее и контекстное меню к ней.
порядка 10 png-картинок, каждая размером не более 8 Кб.
... вот и весь набор ...

может что-то гдето подкрутить надо?

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #6 Добавлено: 10.04.06 21:24
Пора бы уже привыкнуть, что .net-программы пожирают память нещадно. Ничего нигде не подкрутишь. Либо смириться, либо использовать для создания программ любой другой инструмент

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 11.04.06 01:06
В .NET не следует использовать Microsoft Internet Transfer Control. Для работы с инетом там предусмотрены свои собственные средства. И вообще, следует по возможности избегать COM-объектов.

P.S. На размер занимаемой памяти это не повлияет.

Ответить

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



Вопросов: 37
Ответов: 61
 Профиль | | #8 Добавлено: 11.04.06 10:32
В .NET не следует использовать Microsoft Internet Transfer Control.


Буду очень благодарен, если кто-нибудь объяснит мне, что нужно использовать, а главное как.

Задача простая:
отправить запрос на сервер, получить ответ и его обработать.

Ещё буду благодарен, если дадите сслочку на то, что следует почитать.
Просто я хорошо знаю PHP, но Visual Basic для меня тёмный лес...
А в книжке, которая к меня есть, ничего не написано о том, как смастерить проиложение работающее с Интернетом...
В общем помогите, буду бблагодарен.

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 11.04.06 11:05
Нужно использовать PHP и fsockopen. Для GUI следует использовать PEAR'овский гуй или WinBinder

Ответить

Номер ответа: 10
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #10
Добавлено: 11.04.06 11:15
ExitProcess aka End :)

Ответить

Номер ответа: 11
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #11 Добавлено: 11.04.06 12:03
Для GUI следует использовать PEAR'овский гуй или WinBinder

Не сложилось у меня первое знакомство с WinBinder'ом...

Да он, в принципе, и не особенно нужен конкретно в этой ситуации.

Меня Visual Basic вполне устраивает, т.к основную работу делает сам (хотя за это и приходится платить пожираемыми ресурсами...)

НО!
Буду очень благодарен, если кто-нибудь объяснит мне, что нужно использовать, а главное как.
- сам себя процетировал :)

Ответить

Номер ответа: 12
Автор ответа:
 vito



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

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #12
Добавлено: 11.04.06 12:03
Например можно так сделать.

 
Dim fs As FileStream    ' To access the local file
        Dim req As WebRequest    ' Reference to the Webrequest

        ' Wrap the stream access in a Try/Finally block to guarantee a timely
        ' release of the stream resources.
        Try
            ' Access the file
            fs = New FileStream("datafile.txt", FileMode.Open)

            ' Create the WebRequest instance
            req = WebRequest.Create("http://localhost/SendAndReceiveDataWebPages/SendData.aspx";)

            ' Use POST since we're sending content in the body.
            req.Method = "POST"

            ' Copy from the file into the RequestStream
            CopyData(fs, req.GetRequestStream())

        Catch exp As Exception
            MessageBox.Show(exp.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        Finally
            Try
                ' Guarantee the streams will be closed
                If Not req Is Nothing Then req.GetRequestStream.Close()
                If Not fs Is Nothing Then fs.Close()
            Catch
                ' Eat the error if we get one
            End Try
        End Try

        Dim rsp As WebResponse
        Try
            ' This actually sends the data to the Web Server
            rsp = req.GetResponse()

            If CType(rsp.Headers("Content-Length";), Double) = 0 Then
                MessageBox.Show(";Data Sent Sucessfully.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

        Catch exp As Exception
            MessageBox.Show(exp.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            Try
                If Not rsp Is Nothing Then
                    rsp.Close()
                End If
            Catch

            End Try
        End Try

Ответить

Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 11.04.06 12:42
Либо так:
'Импортируем необходимые пространства имён
Imports System.Net
Imports System.Collections.Specialized

Далее в коде:
        '//Создаем объект
        Dim wc As New WebClient

        '//Переменная для ответа сервера
        Dim Result As String = ""

        Try

            With wc

                '//Задаем неоходимую кодировку(в данном случае указана русская
                '//при необходимости можешь использовать любую другую (UTF7,8,32 ASCII  и т.д.)
                .Encoding = System.Text.Encoding.GetEncoding(1251)

                '//Если для подключения необходимо использовать Proxy Server
                '//то сделать это можно следующим образом:
                '//   - вариант без авторизации на сервере
                '.Proxy = New WebProxy("Название ProxyServer или IP-адрес", НомерПорта)
                '//   - вариант с авторизацией
                '.Proxy = New WebProxy("Название ProxyServer или IP-адрес", НомерПорта)
                '.Proxy.Credentials = New NetworkCredential("Твой логин", "Твой пароль";)
                '//Либо настройки прокси-сервера можешь взять из Internet Explorer
                .Proxy = WebRequest.DefaultWebProxy

                '//Если требует сервер, то добавляешь необходимые заголовки
                '//из перечисления HttpRequestHeader, либо создаешь свои
                With .Headers
                    .Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";)
                    .Add(HttpRequestHeader.AcceptLanguage, "ru";)
                    .Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded";)
                    .Add(HttpRequestHeader.Referer, "http://vbnet.ru";)
                    .Add("X-Powered", "EROS © 2006 N.Novgorod";) ':-)
                End With

                '//Создаем строку запроса, усли это надо
                Dim MyQuery As New NameValueCollection
                With MyQuery
                    .Add("user", "Вася";)
                    .Add("password", "Пупкин";)
                    .Add("namecolor", "#FF0000";)
                End With
                .QueryString = MyQuery

                '//Задаем адрес страницы на которую отправляем запрос
                Dim MyURL As New Uri("http://vbnet.ru/";)

                '//Получаем ответ сервера
                Result = .DownloadString(MyURL)

            End With

        Catch ex As Exception
            '//Обрабатываем ошибки
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

        '//В переменной Result будет храниться все то, что вернет тебе сервер
        If Result.Length > 0 Then MessageBox.Show(Result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information)

Ответить

Номер ответа: 14
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #14 Добавлено: 11.04.06 12:51
Спасибо! Спасибо всем большое!
Особая благодарнасть: vito и EROS'у

Ответить

Номер ответа: 15
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #15 Добавлено: 11.04.06 12:55
Нужно использовать PHP и fsockopen. Для GUI следует использовать PEAR'овский гуй или WinBinder


Sharp, к чему такие извращения?

Ответить

Страница: 1 | 2 |

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



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