Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение двух программ 
:(
    Опции темы
nevermind
Дата 14.10.2004, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 15.5.2004

Репутация: нет
Всего: нет



Написал на практике две маленькие программки для Linux'а, надо было создать аrray 8MB,a потом совершать над каждым элементом какую нибудь операцию (неважно какую). Один раз надо создать local array во второй раз global array, потом написать в чем между программами разница... Я абсолютно ничего не заметил, CPU грузится одинаково, как в первом, так и во втором варианте, память тоже одинаково загружается.. Не подскажите в чем могут быть еще различия?

Привожу код:

Код

#include <stdio.h>

int main(void)
{
long wert=0;
int i=0;
long array[2097152];
while(i<2097152)
{
array[i]=wert;
i++;
}
while(i>0){
array[i]=array[i]+1;
array[i ]=array[i]-1;
i--;
}
return 0;
}


Код
#include <stdio.h>

long array[2097152];
int main(void)
{
long wert=0;
int i=0;
while(i<2097152)
{
array[i ]=wert;
i++;
}
while(i>0){
array[i ]=array[i]+1;
array[i ]=array[i]-1;
i--;
}
return 0;
}


PM   Вверх
chipset
Дата 14.10.2004, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Мне кажется что никакой разницы нету.
Во втором случае ни одна из других функций не сможет использовать массив и всё. smile.gif

Это сообщение отредактировал(а) chipset - 14.10.2004, 01:33


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
JackYF
Дата 14.10.2004, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



А какая должна быть разница?
разница есть, когда память динамическая и статическая, а тут всё - стековая (статическая) smile.gif


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nevermind
Дата 14.10.2004, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 15.5.2004

Репутация: нет
Всего: нет



Незнаю...профессор наш чего то ожидает, а не говорит... Сказал сами догадайтесь.. smile.gif Говорит есть разница какая то..
PM   Вверх
dargaard
Дата 14.10.2004, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 450
Регистрация: 7.5.2004

Репутация: 4
Всего: 25



nevermind
скомпилил обе программы (gcc 3.2.2) . первая сег-фолтит. пробежал по неи с помошью ddd - массив array в первом случае не выделается (указывает на 0х0). Во втором случае все нормально.

проблема в том что в первом случае выделение памяти происходит из stack-a во втором выделение будет из heap-a. Посему если не передавать дополнительные опции компилятору место на стаке просто не останется.
Цитата

"... array on the stack, which has a very limited size on most operating systems (declaring an array with more than a few thousand elements will often cause a crash)"



--------------------
Ты должна сделать добро из зла 
потому что его больше не из чего
сделать. Р.П.Уоррен
PM MAIL WWW ICQ   Вверх
nevermind
Дата 14.10.2004, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 15.5.2004

Репутация: нет
Всего: нет



Всем спасибо большое за помощь smile.gif
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.