![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 25.01.2011
Сообщений: 10
|
![]()
Привет !
![]() Суть проблемы: выделяю память для большого числа одинкаовых массивов, суммарным размером в ~ 47 Мб. Использую сalloc - программа занимает в памяти ~ 205 Мб, если использовать malloc - занимает около ~ 70 Мб. Везде пишут, что разница между этими 2-мя функциями, только в обнулении памяти в calloc. Как выяснилось, памяти съедается больше из-за того, что под массив выделяется на самом деле больший объем памяти. Т.е. для выделяю память malloc под массивы размером в 8 байт, получаю адреса : 0x93eee348 , 0x93eee358 , 0x93eee368 .... Т.е. фактически выделяется не 8 байт, а 16. Выделяю память сalloc под массивы размером в 8 байт, получаю адреса: 0x81f3648 , 0x81f3670 , 0x81f3698 ... Т.е. фактически выделяется не 8 байт, а 40. Реально ли сделать так, чтобы под массив 8 байт, отводилось 8 байт ? И почему calloc и malloc "выделяют" память по разному ? З.Ы.: компиллятор gcc , ОС Linux на VS+Win не проверял |
![]() |
![]() |
![]() |
#2 |
Регистрация: 19.12.2010
Сообщений: 5
|
![]()
Подскажите пожайлуста где можно скачать Borland C++ . Или может кто-то может скинуть.
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 25.01.2011
Сообщений: 10
|
![]()
Из интернета,блин, можно. Сам недавно узнал, в шоке сижу
![]() http://www.google.com/search?ie=UTF-...B0%D1%82%D1%8C Последний раз редактировалось dn.xmk; 25.01.2011 в 16:00. |
![]() |
![]() |
![]() |
#4 | |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]() Цитата:
По теме теперь. Странно как-то. Сейчас проведу тесты... upd: Собирал с помощью gcc --std=c99 ./main.c Код:
Код:
Автор, может ты там напутал чего?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su Последний раз редактировалось Obey-Kun; 25.01.2011 в 17:10. |
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 25.01.2011
Сообщений: 10
|
![]()
Врядли )
Попробуй например так : Код:
Код:
IRL кушает кушает намного больше. Ну и для завершения эксперимента меняем calloc на malloc и смотрим на размер. В моем случае calloc навдыелял 72 Мб , а malloc - 24 , вместо положеных 16 +- поправка на ветер ![]() Последний раз редактировалось dn.xmk; 25.01.2011 в 17:41. |
![]() |
![]() |
![]() |
#6 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]()
В первом случе ты зачем-то сохраняешь указатели как int'ы, зачем?
А во втором ты приводишь calloc к int? Ладно бы если приводил к int*, но вообще приводить не обязательно в С ![]() Но это всё оффтоп. Код:
Код:
Что-то ты чернишь ![]()
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su Последний раз редактировалось Obey-Kun; 25.01.2011 в 17:43. |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 25.01.2011
Сообщений: 10
|
![]()
хм. как ты занимаемую память смотришь ?
|
![]() |
![]() |
![]() |
#8 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]()
В KDE ctrl+esc нажимаю
![]()
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
![]() |
![]() |
![]() |
#9 | |
Новичок
Джуниор
Регистрация: 25.01.2011
Сообщений: 10
|
![]() Цитата:
В принципе, ps -C %AppName% -F , если по RSS смотреть то же самое, что и System Monitor показывает. Но в любом случае, 81820 КиБ это дофига. Это грубо говоря по 70 байт на массив вместо 16 Последний раз редактировалось dn.xmk; 25.01.2011 в 17:59. |
|
![]() |
![]() |
![]() |
#10 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]()
16*4*1048576/1024 = 65536
Вполне нормально.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В чем разница между malloc и calloc ? | alexobenikov | Общие вопросы C/C++ | 5 | 10.02.2010 22:01 |
SIEGSEGV в malloc() | TheVampire | Общие вопросы C/C++ | 0 | 25.09.2009 14:32 |
TForm & TImage & PNG & Прозрачность | delphi_beginner | Общие вопросы Delphi | 7 | 19.09.2009 08:46 |
Проблема с malloc | Обледеневший | Общие вопросы C/C++ | 7 | 14.09.2009 18:06 |
malloc free Ошибка. | BeNN | Общие вопросы C/C++ | 19 | 09.07.2009 12:46 |