Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Режим отображения отдельной подветви беседы | [ Отслеживать ] |
Оглавление |
Сообщения | [Сортировка по времени | RSS] |
8. "Релиз набора компиляторов LLVM 8.0" | –3 +/– | |
Сообщение от Аноним (8), 21-Мрт-19, 09:29 | ||
> VLA | ||
Ответить | Правка | Наверх | Cообщить модератору |
9. "Релиз набора компиляторов LLVM 8.0" | +4 +/– | |
Сообщение от петявася (?), 21-Мрт-19, 10:26 | ||
Внезапно они есть с C99, плюс в C11 немного поставили. | ||
Ответить | Правка | Наверх | Cообщить модератору |
12. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Аноним (12), 21-Мрт-19, 10:51 | ||
Отвратительная штука ибо ты не можешь отследить выделилась память или нет и тупо сваливаешься на переполнении стека | ||
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору |
13. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Аноним (13), 21-Мрт-19, 11:22 | ||
Его это не волнует. | ||
Ответить | Правка | Наверх | Cообщить модератору |
14. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Cradle (?), 21-Мрт-19, 12:31 | ||
иногда волнует, но также порой волнует потеря циклов 16-мгц контроллера на выделение и освобождение кучи когда на стеке место гарантировано есть. Так что лучше когда есть выбор. | ||
Ответить | Правка | Наверх | Cообщить модератору |
15. "Релиз набора компиляторов LLVM 8.0" | +2 +/– | |
Сообщение от Аноним (13), 21-Мрт-19, 12:43 | ||
> иногда волнует, но также порой волнует потеря циклов 16-мгц контроллера на выделение | ||
Ответить | Правка | Наверх | Cообщить модератору |
18. "Релиз набора компиляторов LLVM 8.0" | +1 +/– | |
Сообщение от Ordu (ok), 21-Мрт-19, 16:20 | ||
Если ты статически уверен, что памяти на стеке достаточно, значит ты статически знаешь сколько там есть и сколько тебе надо. То есть ты посчитал максимальный размер того, что тебе надо, и убедился в том, что этот максимальный размер возможно выделить. Ну так выдели максимальный, в чём проблема-то? | ||
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору |
23. "Релиз набора компиляторов LLVM 8.0" | +2 +/– | |
Сообщение от Урри (?), 22-Мрт-19, 09:44 | ||
А что, в любой программе существует только одна функция с однократным вызовом? | ||
Ответить | Правка | Наверх | Cообщить модератору |
26. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Cradle (?), 22-Мрт-19, 13:01 | ||
в embedded это еще возможно отследить (и очень желательно), в браузере точно уже нет. | ||
Ответить | Правка | Наверх | Cообщить модератору |
27. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Cradle (?), 22-Мрт-19, 13:03 | ||
> с однократным вызовом | ||
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору |
29. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Ordu (ok), 22-Мрт-19, 15:48 | ||
> А что, в любой программе существует только одна функция с однократным вызовом? | ||
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору |
30. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Cradle (?), 22-Мрт-19, 16:13 | ||
да все понятно что тут аргументов больше против чем за и большой риск нарваться, а за использование vla в сразу нескольких вложенных функциях на разных уровнях я бы тоже по рукам бил больно. С другой стороны, вот например MISRA вносит целую кучу запретов, понятных и не очень, а потом люди встречаются и думают: "а если мы в нашей функции alloca используем, станет ругаться или не заметит?" | ||
Ответить | Правка | Наверх | Cообщить модератору |
31. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Ordu (ok), 22-Мрт-19, 19:19 | ||
А зачем использовать alloca? Если уж совсем никак не уйти от динамического размера, а куча слишком медленная, то можно же сделать специализированный аллокатор под такого рода вещи. | ||
Ответить | Правка | Наверх | Cообщить модератору |
25. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Cradle (?), 22-Мрт-19, 12:57 | ||
> Ну так выдели максимальный | ||
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору |
16. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Аноним (16), 21-Мрт-19, 12:44 | ||
Без VLA происходит то же самое. | ||
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору |
17. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Аноним (16), 21-Мрт-19, 12:52 | ||
Другое дело, что если использоется VLA или alloca, особенно внутри if или цикла, то компилятору труднее оптимизировать, ибо Stack Pointer в пределах функции уже не постоянная величина, и надо либо генерить код, которые учитывает изменения Stack Pointer, либо таки использовать регистр под Frame Pointer, а не под что-то более полезное. | ||
Ответить | Правка | Наверх | Cообщить модератору |
33. "Релиз набора компиляторов LLVM 8.0" | +1 +/– | |
Сообщение от adolfus (ok), 25-Мрт-19, 11:41 | ||
На 64-разрядной архитектуре стек и куча используют одно и то же логическое адресное пространство, поэтому без разницы, где вы будете выделять память, в стеке или в куче -- если память исчерпывается, она исчерпывается как для стека, так и для кучи. А выделять локальную память в стеке быстрее и удобнее. | ||
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору |
20. "Релиз набора компиляторов LLVM 8.0" | +/– | |
Сообщение от Аноним (20), 21-Мрт-19, 18:54 | ||
Вообще да, но для ядра опасненько. | ||
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |