TableView Flicker ios

Переполнение стека означает, что: переполнение стека. Обычно в программе есть один стек, который содержит переменные и адреса локальной области, куда возвращаться, когда заканчивается выполнение подпрограммы. Этот стек имеет тенденцию быть фиксированным диапазоном памяти где-то в памяти, поэтому он ограничен, насколько он может содержать значения.

Если стек пуст, вы не можете поп, если вы получите стек ошибка переполнения.

Если стек заполнен, вы не можете нажать, если вы получите ошибку переполнения стека.

Таким образом, переполнение стека появляется там, где вы слишком много выделяете стек. Например, в упомянутой рекурсии.

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

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

Самая простая вещь, которую вы могли бы попробовать, это увеличить размер стека, если сможете. Если вы не можете этого сделать, вторая лучшая вещь - посмотреть, есть ли что-то, что явно вызывает переполнение стека. Попробуйте, напечатав что-то до и после вызова в рутину. Это поможет вам узнать провал.

0
задан AnonProgrammer 13 July 2018 в 21:05
поделиться