|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
26.08.2020, 14:29 | #1 | |
Крашится долгий цикл WHILE
Калининград
Регистрация: 09.10.2012
Сообщений: 7
|
||
Просмотров: 3615
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Без кода можно очень долго гадать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,053
|
это ваши предположения или анализ потребляемых ресурсов? Попробуйте перед запуском лиспа хотя бы диспетчер задач запустить и по нему посмотреть, как будет память выжираться... Рекурсию насколько глубоко используете - у того же VBA с этим беда, очень маленький стек.
|
|||
|
||||
Регистрация: 09.10.2012
Калининград
Сообщений: 7
|
Цитата:
Лог-файлы пишутся при ошибке? Может, там есть ответ? |
|||
|
||||
Регистрация: 09.10.2007
Москва
Сообщений: 451
|
Вам вопрос задали про рекурсию. Вы не ответили. Очень правильный вопрос.
|
|||
|
||||
Регистрация: 09.10.2012
Калининград
Сообщений: 7
|
Нет там никакой рекурсии. Простой цикл.
Попробую пояснить: В начале берутся 3 точки из множества. По ним строится треугольник. Далее назначаются 3 пары точек: координаты отрезков, из которых построен треугольник. Тут начинается цикл: каждая пара находит для себя оптимальную точку в соответствии с триангуляцией, лежащую за пределами треугольника. Строится новый треугольник по трем точкам - начало отрезка, конец отрезка, новая точка. Пара (отрезок) удаляется из списка, вместо нее в список добавляется две новых пары (два новых отрезка к найденной точке). Если точку найти не удается, пара удаляется из списка. И т.д. Из практики, в списке не бывает более 150-170 пар точек. Цикл длится до тех пор, пока не закончится список пар. ----- добавлено через ~6 мин. ----- Видео, как это работает: https://www.youtube.com/watch?v=h3c7bhACBIM |
|||
|
||||
Регистрация: 09.10.2012
Калининград
Сообщений: 7
|
Могу тебе только направление показать, куда пойти с дотнетом и цивилом3д. Твой дотнет и цивил сгенерирует потом мне xml из полученных полигонов? Эти программы привяжут мне точки к географическим координатам? Если есть, что сказать по делу - говори. Иначе, направление ты знаешь.
|
|||
|
||||
Регистрация: 20.04.2014
Сообщений: 38
|
Цитата:
Надо добавить в цикл логирование в файл и потом анализировать состояние, предшествующее падению. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
|
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Цитата:
----- добавлено через ~2 ч. ----- А вообще, установи logfilemode в 1, выполняй в критических участках (mem), потом парсь полученный лог, будет по крайней мере понятно, что по памяти происходит.
__________________
На работе было скучно:shout: |
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,526
|
Когда я был студентом - пытался написать алгоритм создания полигонов по точкам на Делфи. Алгоритм постоянно фаталил. Я его так и не доделал, но усвоил, что при построении алгоритма не нужно использовать тригонометрические функции, у которых разрывная область определения (tan и atan). Также ошибка может возникать, когда полигон оказывается вырожденным (совпадают точки, или три точки почти на одной прямой, на грани погрешности).
Нужно в цикл ввести счетчик (i), при выполнении цикла выводить i в поле какой-нибудь формы и форму обновлять при каждом изменении i. При падении - вы увидите при каком значении счетчика происходит краш. Соответственно, при следующем выполнении следует поставить брякпойнт в цикле на это значение i - тогда можно остледить момент, когда возникает ошибка. Если значение i сбрасывать в файл (log) - не факт, что при краше последнее значение сохраниться, так как файл не будет закрыт нормальным образом. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Как выполнять СГП на нулевой цикл? Поделитесь примером. | Matiss | Поиск литературы, чертежей, моделей и прочих материалов | 0 | 05.05.2014 12:33 |
VBA 2010 медленно работает цикл по сравнению с 2008 | sergtranes | Программирование | 23 | 04.09.2011 17:37 |
Цикл с неизвестным числом итераций? | Tonic | Программирование | 4 | 01.04.2009 09:52 |
Перечень актов за полный цикл СМР | Технадзор | Разное | 2 | 28.12.2008 23:15 |