Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вопрос по оптимизации кода и памяти

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Iskander



Зарегистрирован: 01.04.2005
Сообщения: 3
Откуда: Тула <-> Москва

СообщениеДобавлено: Пт Апр 01 2005 15:20    Заголовок сообщения: Вопрос по оптимизации кода и памяти Ответить с цитатой

Люди, помогите советом.
Создаю приложение, которое кушает памяти мало, но часто.
Что делал:
1. создаю класс, объявляю в нём функции, описываю ф-ции
... MyClass::Function()
{
double A;
double B[5];
и т.п.
}

2. меня заглючило, что ежели эту функцию вызывать оч. часто, то соответственно часто будет выделяться память под объявляемые внутри неё переменные, а это, в свою очередь, будет тормозить вычисления (затраты там на выделение памяти) и фрагментировать память, что плохо.
3. стал все эти переменные объявлять в теле класса:
class MyClass
{
public:
...
double A;
double B[5];
}

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

Question Отсюда вопрос:
имеет ли смысл городить такие городушки и верно ли то, что я описал? В особенности меня интересует 2 пункт: быть может я не прав, и компилятор в этом случае (при создании экземпляра класса) выделяет всю необходимую память для функции Fuction и её переменных единожды только, а не при каждом обращении? Question Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
критикан



Зарегистрирован: 18.02.2005
Сообщения: 247

СообщениеДобавлено: Пт Апр 01 2005 18:03    Заголовок сообщения: Оттрассировать лень, чтоб убедиться? Ответить с цитатой

Память под локальные переменные (любой) функции выделяется из динамического пула
------------------------
Оттрассировать лень, чтоб убедиться?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DmitryShm



Зарегистрирован: 17.11.2003
Сообщения: 211
Откуда: Казань

СообщениеДобавлено: Сб Апр 02 2005 19:05    Заголовок сообщения: все правильно Ответить с цитатой

Все правильно, хорошим стилем как раз будет сохранять важные вычисления в объетах-полях класса. И если тебя интересуют подобные затраты памяти, то сделай метод с вычислениями inline, и тогда, один раз потратившись, заюзаешь все пучком. Smile
_________________
love IT
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Chea



Зарегистрирован: 05.04.2005
Сообщения: 1

СообщениеДобавлено: Вт Апр 05 2005 21:37    Заголовок сообщения: Ответить с цитатой

При работе с локальными переменными накладных расходов при таботе с памятью нет т.к. память под локальные переменные выделяется в стеке.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Iskander



Зарегистрирован: 01.04.2005
Сообщения: 3
Откуда: Тула <-> Москва

СообщениеДобавлено: Ср Апр 06 2005 08:47    Заголовок сообщения: спасибо всем Ответить с цитатой

Спасибо всем! Оставлю всё как есть, ибо привык.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...