![]() |
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Реализовал объект многоугольник, который имеет неопределенное количество вершин. Но скорость работы с ним критическая, поэтому надо как можно сильнее его оптимизировать.
Вот, что он из себя представляет:
Кольцевой список
Модуль для работы с векторами
Программа для проверки минимальной работоспособности
Три модуля вмести: ![]() PS в принципе код прозрачен, но если что-то не понятно - спрашивайте. ![]() -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
Bokul |
![]() ![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата Смотри, как это же делал бы я: Красиво ![]() Цитата А насчет Difference я тебе уже сказал в другой теме, куда смотреть... Нашел утечку ![]() ![]() Вместо dispose(mas[i]); надо dispose(mas[i],done); Вот, какие данные получил я : ![]() Отчет heaprtc Цитата Heap dump by heaptrc unit 10100000 memory blocks allocated : 121200000/161600000 10100000 memory blocks freed : 121200000/161600000 0 unfreed memory blocks : 0 True heap size : 98304 (80 used in System startup) True free heap : 98224 Наверно ничего и не надо оптимизировать - ведь для нас критическими являются такие рабочие лошадки как ContainsPoint, ContainsOtherPolyg, Inside, а не AddVertex и Done, пожирающие почти все время, которые используются только при инициализации и в конце. -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 9:53 |