Кибор довольно прожорлив в плане оперативной памяти. Это становится особенно проблематично, когда используешь виртуальные машины, чтобы выжать побольше окон игры с одного компа.
При этом не очень понятна логика потребления памяти. Например, одна моя собранная в EXE программа на несколько тысяч строк потребляет 800 МБ, а другая, раз в 10 меньшая 500 . А совсем простая в 20 строк – 200 МБ. И даже собранная в EXE программа с одной строчкой: messagbox(“Helloy, world!”); у меня ест 40 МБ.
В связи с этим у меня ряд вопросов:
1) От чего в большей степени зависит объем потребления? Может, стоит минимизировать что-то из ниже-перечисленного?
А) Количество команд в коде.
Б) Количество объявленных переменных и массивов.
В) Количества функций - function
Г) Какие-то команды определенных типов, например поиск на экране, чтение с файла
Д) Количество всех проходов по коду с учетом goto и for
Ж) Определение локальных перменных внути частых функций или задание сразу всех переменных глобальными.
2) Влияет ли как-то на потребление оперативки собранной в EXE программы установки: Настройки -> Трансляция -> Управление памятью ?
3) Зависит ли потребление памяти от стиля написания программы? Я, например, люблю выстраивать побольше команд в одной строке. Может ли это пагубно влиять?
4) Может потребление зависить от установленных пакетов C++ или еще чего-то, что ставится в виндоусе?
5) Выделается окончательный объем оперативки при старте программы и остается неизвенным, или может увеличиваться в процессе работы?
6) Может потребление зависить от установленных пакетов C++ или еще чего-то, что ставится в виндоусе?
7) Может что-то еще влияет, что я тут не указал?
1. Skycrew - 12 Февраля, 2017 - 09:27:35 - перейти к сообщению
2. Kibor - 12 Февраля, 2017 - 10:52:45 - перейти к сообщению
Обновил. Будет меньше есть.
Зависит от кода. Размера.
Зависит от кода. Размера.
3. Dantes3000 - 12 Февраля, 2017 - 11:25:45 - перейти к сообщению
Не заметил что-то. Собранный ехе работает с утра. В диспетчере 50 мб показывал, маловато, конечно. Но после перезапуска стал 400 жрать
4. Kibor - 12 Февраля, 2017 - 11:52:53 - перейти к сообщению
Плохо. Это не должно быть.
5. Skycrew - 12 Февраля, 2017 - 12:39:38 - перейти к сообщению
Kibor пишет:
Обновил. Будет меньше есть.
Зависит от кода. Размера.
Зависит от кода. Размера.
Но разные команды кода "едят" оперативку по-разному, как я понимаю?
Интересно узнать какие там наиболее прожорливые)
6. Kibor - 12 Февраля, 2017 - 12:58:53 - перейти к сообщению
Команды не при чем тут почти. Они не увеличивают потребление памяти значительно хоть сколько.
7. Skycrew - 13 Февраля, 2017 - 00:30:49 - перейти к сообщению
Kibor пишет:
Команды не при чем тут почти. Они не увеличивают потребление памяти значительно хоть сколько.
Есть какие-то способы, чтобы уменьшить потребление памяти со стороны программиста?
(Добавление)
Было обновление?
Сейчас обновил и скомпилировал: messagebox("Hello, world!"); , потребляет 46 МБ.
8. Kibor - 13 Февраля, 2017 - 00:48:47 - перейти к сообщению
Skycrew пишет:
Есть какие-то способы, чтобы уменьшить потребление памяти со стороны программиста?
нет.
Skycrew пишет:
Сейчас обновил и скомпилировал: messagebox("Hello, world!" , потребляет 46 МБ.
это жрет эмулятор. не критично 40 метров.
Оптимизировано другое.
А сколько берет то что брало 800?
9. Skycrew - 13 Февраля, 2017 - 06:57:02 - перейти к сообщению
Kibor пишет:
Skycrew пишет:
Есть какие-то способы, чтобы уменьшить потребление памяти со стороны программиста?
нет.
Skycrew пишет:
Сейчас обновил и скомпилировал: messagebox("Hello, world!"); , потребляет 46 МБ.
это жрет эмулятор. не критично 40 метров.
Оптимизировано другое.
А сколько берет то что брало 800?
То, что потребляло 800 стало потреблять 600
Что потребляло 500 - 300 примерно
А что 200 теперь 90.
Полезный апдейт! Спасибо!
10. Nightshade2 - 13 Февраля, 2017 - 23:13:44 - перейти к сообщению