"Stack overflow" как обойти?27.01.2014, 00:17. Показов 7070. Ответов 40
Метки нет (Все метки)
Доброго времени суток!
Дело в том, что при объявлении массива размером 106
Вот весь код (без кода функции двоичной сортировки quickSortR)
0
|
|||||||||||
| 27.01.2014, 00:17 | |
|
Ответы с готовыми решениями:
40
Stack overflow Stack overflow. |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 27.01.2014, 16:14 | |
Сообщение было отмечено Убежденный как решение
Решение
1. стек должен быть непрерывным, в то время как для кучи такого требования нет. Непрерывный кусок памяти заданного размера найти иногда просто невозможно в силу фрагментирования памяти.
2. со стеком не реализовать логику случайного освобождения памяти (в терминалогии стека, есть только адрес его вершины). Нельзя освободить память из середины стека, не тронув вершину. 3. про скорость довольно сомнительно. Если есть много мелких объектов, которые нужно создавать/уничтожать, можно выделить пул и работать с ним.
5
|
|
| 27.01.2014, 17:41 | ||
|
0
|
||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
||
| 27.01.2014, 18:02 | ||
|
0
|
||
|
Ушел с форума
|
|
| 27.01.2014, 18:51 | |
|
Ко всему написанному хотелось бы добавить, что в Windows ситуацию с
переполнением стека можно отловить через SetUnhandledExceptionFilter. Вот только радости от этого немного, т.к. в обработчике ничего серьезного выполнить не выйдет, ибо стековой памяти уже нет...
1
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 27.01.2014, 18:56 | |||
|
а размер стека 1 Мб Добавлено через 3 минуты [ebp+x] или [esp-x] для стека [esi+x] для кучи где тут быстрее?
0
|
|||
| 27.01.2014, 19:00 | ||
|
Так какой вывод? для я себя сделал выбор в пользу кучи и динамической памяти (как и советует Tulosba), но по скорости я все таки проигрываю?
Добавлено через 47 секунд
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 27.01.2014, 19:01 | |||
|
а при последовательном доступе даже выиграешь
0
|
|||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
||
| 27.01.2014, 19:30 | ||
|
0
|
||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
||
| 27.01.2014, 19:47 | ||
|
В общем, я просто хотел обратить внимание на то, что доступ к SS:SP был бы быстрее, чем к записи смещения для кучи в регистр и только потом чтения адреса оттуда, и просто поинтересовался, почему же в таком случае не делают просто шире стек. И ни с кем спорить вообще-то не планировал.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 27.01.2014, 19:54 | |||
|
сколько тактов занимает такая вот например команда lea eax,[esi+4*ecx]?????????
0
|
|||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
|||
| 27.01.2014, 20:05 | |||
|
0
|
|||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 27.01.2014, 20:17 | ||
|
растактовку можешь по командам дать? или просто так говоришь? так кстати и не ответил сколько тактов занимает команда? Добавлено через 4 минуты кстати так ради смеха я не адрес записал а рассчитал значение ecx умноженное на 5 ( для этого правда значения из ecx в esi надо скопировать)
0
|
||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
||
| 27.01.2014, 20:25 | ||
|
Все что я хотел сказать по этому поводу, я сказал, что вы мне пытаетесь сейчас доказать - ума не приложу. Какие-то куски псевдо асм кода кидаете не понятные, откуда-то с потолка взятые. По поводу тактов - да погорячился, назвав их тактами, но я имел ввиду именно шаги обращения, команды, если хотите. И причем тут 8086? Мы разве об архитектуре речь ведем или о том, что для доступа к памяти на стеке нужно всего лишь к sp обратиться, а к куче - сначала получить адрес, а потом с ним работать? Не понимаю ваших претензий, честное слово.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||
| 27.01.2014, 20:44 | ||||
|
могу он или передается в функцию или возвращается new а дальше работа по эффективности не отличается от стека или ты думаешь что адрес где то сидит мы его взяли добавили смешение считали значения для другого все заново повторили? так что утверждение что работа с кучей медленней чем работа со стеком, тем более в два раза, ложное
0
|
||||
|
|
|||||||
| 27.01.2014, 20:45 | |||||||
|
Раз уж начали офтопить и холиварить..
0
|
|||||||
|
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
|
|
| 27.01.2014, 20:58 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||||||||
| 27.01.2014, 21:15 | |||||||||||||
но зато здесь нет ограничений (в смысле они гораздо больше чем у стека) а в работе они практически одинаковы в нормальной программе никто не будет создавать и удалять массив миллион раз подряд
0
|
|||||||||||||
| 27.01.2014, 21:15 | |
|
Stack overflow
Stack Overflow в сортировке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|