Member 12857672 Ответов: 2

Проблема шипования использования оперативной памяти?


Здравствуйте, я пишу программу на C++, и у программы есть большая функция, которую я вызываю из файла c++.я замечаю, что использование оперативной памяти составляет 20 МБ, и она скачет до 100 МБ, а затем переходит к 20MB.my вопрос-это плохо для компьютера или как программа иметь регулярные СПИКи ?или лучше использовать глобальные переменные, чтобы программе не пришлось уничтожать переменную, используемую внутри внешней функции?

Что я уже пробовал:

просто постарайтесь понять если это плохо сказывается на производительности программы я хотел бы услышать Ваше мнение

[no name]

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

Member 12857672

у меня нет проблем с производительностью, это то, что я видел и понятия не имею, было ли это хорошо или плохо.спасибо

[no name]

Просто потому, что вы где-то видели "что-то", не означает, что у вас есть проблема. Вы ни о чем не беспокоитесь.

2 Ответов

Рейтинг:
13

Dave Kreskowiak

Это плохо для компьютера? Нет.

Является ли это основой для производительности? Возможно. Это зависит от того, нравится ли вам иметь 100 МБ данных, перекачанных на диск и обратно в память.

Отладьте код и найдите, откуда идет всплеск.


Рейтинг:
0

Patrice T

Цитата:
я замечаю, что использование оперативной памяти составляет 20 МБ, и она скачет до 100 МБ, а затем переходит к 20MB.my вопрос-это плохо для компьютера или как для программы иметь регулярные спайки ?
Нет, неплохо для компьютера.
Без объяснений, что делает программа и как она это делает, ответить невозможно. ответ может быть где угодно: от худшего дизайна до лучшего дизайна и от совершенно нормального до совершенно ненормального.

Например:
- Программа, горелка компакт-диска будет регулярно ISO-файл 800МБ, это нормально.
- Если у вас есть программа, которая делает умножение с помощью рекурсивной функции, которая делает простое сложение при каждом вызове, это будет очень плохой дизайн.

Этот код делает умножение наихудшим из возможных способов. он может вызывать себя миллионы раз, и на его завершение уйдет вечность.
long long MyRecMult(long long a, long long b) {
    if (b!=0) {
        long long c= MyRecMult(a, b - 1);
    } else {
        return 0;
    }
    return a + c;
}