Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.08.2018
Сообщений: 15
.NET 4.x

Оптимизировать память, в чем проблема?

04.02.2019, 05:21. Показов 749. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане.
Вообщем проблема очень непонятная.

В Windows form я новичок, да и в принципе с .NET, не долго работаю. Вообщем проблема такая,
у меня есть приложение в котором находится 4 формы. В принципе в них нет особо большого функционала и приложение только начинает своё развитие. Суть в том, что при переходе с первой формы в другую потребление ram памяти с 20мб увеличивается до 60, если я вернусь со второй формы опять на первую потребление серавно увеличивается и уже с 60 до 130мб, т.е если переходить даже с 1 на 2 несколько раз, память будет расти. Мб я упустил что-то для заморозки?

Обшарил интернет нечего найти не могу. Очень жду ваши ответы.
Спасибо за внимание!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.02.2019, 05:21
Ответы с готовыми решениями:

Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста!
dx=0.0005; epsillon=0.00002; i=0; for x= 0:0.0005:3 i=i+1; if x<1 y (i)=-1; elseif x<2 S=0; ...

Оптимизировать занимаемую память
Как можно уменьшить вес исходника т.е. оптимизировать занимаемую память ибо щяс она уже занимает 500 мать его мигабайт... 300 из них с...

Помогите оптимизировать память, выделяемую под массив.
Имеются три таблицы, в каждой 49800 строк, содержащих три столбца: 1. Порядковый номер. 0-49799, столбец постоянен. 2. Данные, целые...

7
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
04.02.2019, 13:04
А Вы там с сокрытием формы Form.Hide() и созданием новой Form form = new Form() не злоупотребляете?
0
0 / 0 / 0
Регистрация: 08.08.2018
Сообщений: 15
05.02.2019, 03:29  [ТС]
Цитата Сообщение от meridbt Посмотреть сообщение
А Вы там с сокрытием формы Form.Hide() и созданием новой Form form = new Form() не злоупотребляете?
Нет, да и я не скрываю форму, с переходом у меня проходит this.Close(), старая закрывается, новая открывается.
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
05.02.2019, 08:50
warkill,

попробуйте сделать профилирование памяти и посмотреть что занимает память.
0
0 / 0 / 0
Регистрация: 08.08.2018
Сообщений: 15
05.02.2019, 10:30  [ТС]
Цитата Сообщение от meridbt Посмотреть сообщение
попробуйте сделать профилирование памяти и посмотреть что занимает память
сделал, основные функции занимают, но проблема в том что память только возрастает, с переходом на каждую форму, я могу прыгать с формы на форму, память будет только выше, почему она не стабилизируется ?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.02.2019, 10:39
warkill, что за гадания, код свой покажите и всё станет намного быстрее в помощи Вам.
0
0 / 0 / 0
Регистрация: 08.08.2018
Сообщений: 15
05.02.2019, 11:11  [ТС]
тут показывать то и нечего
первая

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
 public partial class Form1 : Form
    {
        /*  public string getMD5(string text)
       {
           MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
           md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
           byte[] result = md5.Hash;
           StringBuilder str = new StringBuilder();
           for(int i=1;i<result.Length; i++)
           {
               str.Append(result[i].ToString("x2"));
           }
           return str.ToString();
       }*/
 
 
        Form1 frm;
 
        public Form1()
        {
 
            InitializeComponent();
            timer1.Start();
         
            txtLogin.Text = Settings.Default["SaveBut"].ToString();
 
 
        }
 
        private void label8_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void bunifuMaterialTextbox2_OnValueChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
         
            Register NewForm = new Register();
          
            NewForm.Show();
           this.Hide();
        }
     
 
      
     
        private void button1_Click(object sender, EventArgs e)
        {
            
          
          
           
 
 
        
 
           
                 Main NewForm = new Main();
                Thread.Sleep(4000);
                this.Hide();
             
 
                  
                NewForm.Show();
              
 
 
 
 
            }
          
 
           
 
 
       
 
        }
     
      
        public void bunifuMaterialTextbox1_OnValueChanged(object sender, EventArgs e)
        {
            Settings.Default["SaveBut"] = txtLogin.Text;
          txtLogin.Text = Settings.Default["SaveBut"].ToString();
            Settings.Default.Save();
        }
 
        private void panelLeft_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label3_Click(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox2_Click(object sender, EventArgs e)
        {
         
       }
 
        private void pictureBox3_Click(object sender, EventArgs e)
        {
           
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Opacity += .03;
            if (this.Opacity == 1)
            {
                timer1.Stop();
            }
        }
 
        private void pictureBox1_Click_1(object sender, EventArgs e)
        {
 
        }
 
        private void label2_Click(object sender, EventArgs e)
        {
 
        }
 
        private void bunifuCheckbox2_OnChange(object sender, EventArgs e)
        {
         
        }
    }
}
вот код 2й формы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
  public partial class Main : Form
    {
 
 
        Form1 frm = new Form1();
        public Main()
        {
          
          
            InitializeComponent();
 
 
           
           
            linkLabel4.Text = Updater.my_version;
            linkLabel3.Text = Data.status;
            linkLabel2.Text = Data.Announcment;
           
            NameValueCollection formData = new NameValueCollection();
            formData["Email"] = Data.Email;
            formData["Money"] = Data.Money;
         
         
          
            linkLabel1.Text = formData["Email"];
            linkMoney.Text = formData["Money"];
 
 
        }
 
 
 
        public void Main_Load(object sender, EventArgs e)
        {
          
 
 
        }
 
 
        private void label8_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void bunifuMaterialTextbox2_OnValueChanged(object sender, EventArgs e)
        {
 
        }
 
        private void panelRight_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
          
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void panelLeft_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void pictureBox1_Click_1(object sender, EventArgs e)
        {
 
          
        }
 
        private void pictureBox3_Click(object sender, EventArgs e)
        {
 
        }
 
      private void pictureBox2_Click(object sender, EventArgs e)
        {
        
        }
 
        private void pictureBox4_Click(object sender, EventArgs e)
        {
         
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
 
 
 
        private void bcMoney_Click(object sender, EventArgs e)
        {
           
    
        }
 
        private void labAccount_Click(object sender, EventArgs e)
        {
           
         
         
 
        }
 
        private void label1_Click_1(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox5_Click(object sender, EventArgs e)
        {
         
         
 
        }
 
        private void pictureBox3_Click_1(object sender, EventArgs e)
        {
          
        }
 
        private void pictureBox7_Click(object sender, EventArgs e)
        {
           
        }
 
        private void pictureBox6_Click(object sender, EventArgs e)
        {
          
        }
 
        private void textBox2_TextChanged_1(object sender, EventArgs e)
        {
 
        }
 
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox8_Click(object sender, EventArgs e)
        {
          
        }
 
        private void pictureBox9_Click(object sender, EventArgs e)
        {
           
        
        }
 
        private void pictureBox11_Click(object sender, EventArgs e)
        {
           
        }
 
        private void pictureBox10_Click(object sender, EventArgs e)
        {
          
 
        }
 
        private void pictureBox12_Click(object sender, EventArgs e)
        {
         
          
        }
 
        private void pictureBox1_Click_2(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox3_Click_2(object sender, EventArgs e)
        {
 
        }
 
        private void pictureBox1_Click_3(object sender, EventArgs e)
        {
          
        }
 
        private void pictureBox11_Click_1(object sender, EventArgs e)
        {
        
        
        }
 
        private void pictureBox10_Click_1(object sender, EventArgs e)
        {
         
        }
      
 
        private void button1_Click_1(object sender, EventArgs e)
        {
          
 
        }
 
        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
 
        }
 
        private void toolStripMenuItem2_Click(object sender, EventArgs e)
        {
 
        }
 
        private void toolStripComboBox1_Click(object sender, EventArgs e)
        {
           
        }
 
        private void contextMenuStrip1_Opening_1(object sender, CancelEventArgs e)
        {
 
        }
 
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
         
        }
 
        private void linkMeny_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
          
        }
 
        private void pictureBox35_Click(object sender, EventArgs e)
        {
 
           Form3 fm3 = new Form3();
            frm3.Show();
            this.Close();
        }
 
        private void pictureBox33_Click(object sender, EventArgs e)
        {
 
            contextMenuStrip2.Show(pictureBox33, new Point(0, pictureBox33.Height));
           
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
 
        private void contextMenuStrip2_Opening(object sender, CancelEventArgs e)
        {
 
        }
 
      
 
        private void contextMenuStrip2_Opening_1(object sender, CancelEventArgs e)
        {
           
        }
 
        private void pictureBox34_Click(object sender, EventArgs e)
        {
            webBrowser1.Visible = true;
            Thread.Sleep(2000);
            webBrowser1.Visible = false;
        
        }
      
       
 
        private void label2_Click(object sender, EventArgs e)
        {
           
 
        }
 
        private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
 
        }
 
        private void pictureBox37_Click(object sender, EventArgs e)
        {
          
        }
 
     
 
       
 
        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            contextMenuStrip2.Show(pictureBox33, new Point(0, pictureBox33.Height));
        }
 
        private void webBrowser3_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
 
        }
    }
}
Добавлено через 1 минуту
я могу переходить с первой на вторую постоянно и постоянно потребление будет увиличиваться.

Добавлено через 5 минут
как бы память только плюсуется, мне нужно что-бы было памяти столько сколько требует форма.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
05.02.2019, 11:34
1) из Main формы не видно как открывается Form1
2) в Form1 вы её прячете (Hide), и судя из кода в Main вы создаёте новую Form1 и далее опять же её прячете и так по кругу вот Вам и потери
3) Вам нужно при создании формы из Form1 передавать в новую форму указатель на текущую, чтобы не создавать каждый раз новый экземпляр Form1, а показывать обратно старый.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2019, 11:34
Помогаю со студенческими работами здесь

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

Проблема с ПК (Оперативная память)
Вообщем собирал пк летом ещё, покупал озу 8гб Patriot Viper Elite 2800 Mhz( 4gbx2). Недавно докупил ТУ ЖЕ САМУЮ память 8гб Patriot Viper...

Память конфликтует с чем-то
Ситуация такая в компе стояла вот такая оператива: http://market.yandex.ru/model.xml?hid=191211&amp;modelid=1639422&amp;clid=502 к ней в...

Тысяча за память в 16 ГБ: в чем подвох?
Здравствуйте сегодня зашел на ebay и нашел это...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru