| Bokul |
26.12.2006 9:32
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Реализовал объект многоугольник, который имеет неопределенное количество вершин. Но скорость работы с ним критическая, поэтому надо как можно сильнее его оптимизировать.
Вот, что он из себя представляет:
Кольцевой список
Модуль для работы с векторами
Программа для проверки минимальной работоспособности
Три модуля вмести:
Polygone.rar ( 13.71 килобайт )
Кол-во скачиваний: 449PS в принципе код прозрачен, но если что-то не понятно - спрашивайте. -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
| Bokul |
26.12.2006 19:32
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата Я бы сделал версию со статистикой (причем, используя директивы {$IFDEF}, хорошая статистика она никогда не помешает, но надо, чтоб ее можно было отключать быстро, а не переписывать из-за этого пол-программы) Да, правильно - так и надо, сделаем... Цитата (если пойти чуть дальше - сколько времени в среднем выполняется каждый метод) Как в Fpc засекать время? Цитата Кстати, почему бы Increase/Decrease тоже не реализовать через ForEach? Вообще то сначала они у меня были в виде перегруженных операторов (+-), но никак не получалось заставить их правильно работать - один из аргументов менял свое значение в независимости от того, как я его передавал в подпрограмму (оно и правильно, ведь если мы даже скопируем ссылку, данные расположенные по ее адресу останутся на месте). А почему без ForEach - для этого процедуре надо передавать еще один параметр - вектор, но ForEach работает только с таким типом ToDo=procedure(point:TPoint); PS volvo, где у тебя произошла такая утечка? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Bokul Многоугольник 26.12.2006 9:32
volvo Хм... Чего тут пока оптимизировать - непонятно... ... 26.12.2006 9:59
volvo :shok:
У меня? Я запустил только твою программу, ... 26.12.2006 20:05
Bokul
:blink: И программу проверки мою???
Я не ... 26.12.2006 20:22
Bokul
Я имею ввиду при каких данных происходит такая ... 26.12.2006 21:28
volvo При твоих... Copy+Paste из твоего первого сообщени... 26.12.2006 21:41
Bokul
Точно, почему я сам это не увидел :blink: Само... 26.12.2006 22:18
Bokul Попытался добавить статистику, но как-то не сильно... 27.12.2006 7:50
volvo Чего-то ты переусложнил по-моему работу со статист... 29.12.2006 13:01
Bokul
Красиво :wink: Единственный вопрос - как называ... 29.12.2006 20:56![]() ![]() |
|
Текстовая версия | 9.12.2025 19:57 |