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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как часто вы пользуетесь функцией 'alloca'? 
:(
    Опции темы
 
Пользуетесь ли вы функцией 'alloca'?
эта функция мне не нужна, всегда обходился без неё [ 23 ]  [63.89%]
не буду никогда ей пользоваться, слишком опасная [ 5 ]  [13.89%]
не пользовался, но хочу попробовать [ 1 ]  [2.78%]
пользовался один-два раза [ 3 ]  [8.33%]
с успехом применяю в своих проектах [ 3 ]  [8.33%]
даже не представляю, что бы я делал без этой функции... [ 1 ]  [2.78%]
Всего проголосовавших: 36
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
JackYF
Дата 4.1.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



а, понятно.

Цитата(archimed7592 @  3.1.2008,  23:42 Найти цитируемый пост)
нам всегда интересно пообщаться с настоящими профессионалами, но если ты не перестанешь оффтопить, то, к великому сожалению, тебе придётся пару дней отдохнуть от форума(а форуму от тебя).

+много smile


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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Не использую, вероятно и не буду.
Функция может понадобиться, когда статические способы непригодны (размер заранее неизвестен)
Код

void f (size_t n)
{
  // хочется X buf[n];
  X *ptr = alloca(n*sizeof(X));
}

но это смахивает на преждевременную оптимизацию. А реальных случаев, когда такая оптимизация полезна, как-то не случилось...


Это сообщение отредактировал(а) baldina - 4.1.2008, 19:18
PM MAIL   Вверх
Alexeis
Дата 4.1.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(baldina @  4.1.2008,  18:14 Найти цитируемый пост)
А реальных случаев, когда такая оптимизация полезна, как-то не случилось...

  Сишные строки. Сколько символов должна быть временная строка? Или строка загружаемая из ресурсов? 10? 100? 1кб? А вдруг понадобиться загрузить фрагмент текстового файла?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fazil6
Дата 4.1.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



Цитата(Alexeis @  4.1.2008,  18:47 Найти цитируемый пост)
А вдруг понадобиться загрузить фрагмент текстового файла?

а вдруг не понадобится?

Цитата

 не оптимизируйте никогда! 

(с) Г.Саттер

PM MAIL   Вверх
baldina
Дата 4.1.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Alexeis, причем тут оптимизация?
PM MAIL   Вверх
Alexeis
Дата 4.1.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(baldina @  4.1.2008,  19:33 Найти цитируемый пост)
Alexeis, причем тут оптимизация? 

  При том что такая память мгновенно выделяется и освобождается smile . А куча работает медленно. Кто не верит можете устроить тест.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
archimed7592
Дата 4.1.2008, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



Цитата(baldina @  4.1.2008,  20:33 Найти цитируемый пост)
Alexeis, причем тут оптимизация? 

Сабжевая ф-ция невероятно быстра smile.

Добавлено через 1 минуту и 27 секунд
Цитата(Alexeis @  4.1.2008,  20:36 Найти цитируемый пост)
Кто не верит можете устроить тест. 

Да верим, верим, только, если понадобится дин. память с возможностью быстрого выделения/освобождения, то я предпочту использовать рукописный пул, чем это безобразие smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
bsa
Дата 4.1.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Тогда уж лучше pool'ы устроить в куче.
PM   Вверх
baldina
Дата 4.1.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Вы все правы, ребята. Однако повторю: "причем тут оптимизация". Речь шла о том, что мне такая оптимизация ни разу не понадобилась. Кому-то - возможно. Но оптимизировать заранее, причем нестандартным способом - увольте. Есть у меня где в похожих местах используется auto_ptr, инициализируемый результатом new. Это понятно и переносимо. Будет узким местом - будем оптимизировать. Но не раньше.

Добавлено через 1 минуту и 12 секунд
Иногда у меня ощущение, что народ полностью ветку не читает, только вокруг...
PM MAIL   Вверх
archimed7592
Дата 4.1.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



baldina, пессемизировать преждевременно тоже не стоит - ты же не пользуешься строками, чтобы хранить отдельные символы? Так и тут - была бы эта ф-ция стандартна и безопасна, то её можно было бы использовать там, где это уместно.

Это сообщение отредактировал(а) archimed7592 - 4.1.2008, 20:55


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
warmonger_
Дата 7.1.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.7.2007
Где: г. Киев

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



правильно ли я понимаю, что alloc действует подобно auto_ptr? 
В том смысле, что освобождается память.

--------------------
Make everything as simple as possible, but not simpler.Albert Einstein
PM MAIL   Вверх
bsa
Дата 7.1.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



warmonger_, alloca выделяет память в области стека. т.е. при выходе из функции память освобождается. Но в отличие от auto_ptr деструктор не вызывается (это сишная функция, тем более нестандартная).
PM   Вверх
Mayk
Дата 7.1.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



по-моему когда я её трогал в последний раз она у меня как стек завалила нафиг.
с тех пор фобия.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
GrayCardinal
Дата 7.1.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

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



Никогда не юзал и юзать не собираюсь. ИМХО, изврат какой-то право слово...


--------------------
PM MAIL WWW   Вверх
archimed7592
Дата 7.1.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



Ну почему же? IMHO, совсем не изврат. Просто если бы она проверяла сколько в стеке места осталось и при необходимости автоматом увеличивала бы стек(если это возможно), то был бы неплохой способ создавать динамические объекты smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1102 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


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

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