Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 15:49   #1
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию Delphi: наивысшая скорость работы с матрицей

Здраствуйте, товарищи кодеры!
Мне в своей программе понадобилось использовать матричные вычисления (матрицы достаточно крупные, например, 250х62000).
Чтоб велосипед не изобретать поискал и нашел модуль Matrix.pas.

http://www.delphikingdom.com/asp/vie...?catalogid=416

Там матрица описывается так:
Код:
type
   MatrixPtr = ^MatrixRec;
   MatrixRec = record
     MatrixRow   : word;
     MatrixCol   : word;
     MatrixArray : pointer;
   end;
   MatrixElement = single;
Я же в программе уже использую динамические массивы.

Что стоит править? Вышеуказанный модуль или свою программу?
Т.е. в каком случае скорость обработки данных (скорости доступа к элементам) в матрице будет выше и где память будет расходоваться экономнее?

P.S. Смотрел модули работы с матрицами на AlgLib'е, так там разбираться серьезно нужно, а меня сроки поджимают.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 31.05.2010, 16:12   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

ИМХО, работа с указателями быстрей, а с динамическими массивами удобней.
Далее скорость серьезно зависит и от версии Делфи, в новых версиях старые механизмы были переписаны и не такие они уже и медленные в сравнении с новыми. Далее все зависит и от алгоритма. Может стоит пересмотреть его?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 31.05.2010, 16:22   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Спасибо за отклик.
Работаю с Delphi 2007.
А что собственно из себя представляет массив? Каким образом получается увеличение скорости при работе с указателями?
Цитата:
Далее все зависит и от алгоритма. Может стоит пересмотреть его?
Согласен, стоит. Но разбираться в тонкостях низкоуровневой оптимизации нет времени. По крайней мере, пока, а вот чтоб работало чуть побыстрей при минимальных затраченных усилиях - ради этого и интересуюсь.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 31.05.2010, 16:38   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Зачем низкоуровневая оптимизация? Можно и высокоуровневую посмотреть.
Цитата:
а вот чтоб работало чуть побыстрей при минимальных затраченных усилиях
Звучит как у меня нет желания заниматься этим.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 31.05.2010, 16:50   #5
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
Звучит как у меня нет желания заниматься этим
Вы правы, хоть и не совсем! Меня время поджимает: мне проект сдавать через неделю, а он у меня только на 2/3 готов, вот и начинается "мандраж"
А так бы, конечно, сам разобрался.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 31.05.2010, 16:52   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Делайте в указателях

Почему не аргментировал? Очень даже аргументировал, пост #2
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 01.06.2010 в 07:03.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[delphi] работа с матрицей. kiko Фриланс 5 09.01.2010 13:46
разработка функции для работы с матрицей, помогите исправить ошибки aka_faith Общие вопросы C/C++ 25 05.06.2009 13:12
зависит ли скорость работы макроса от порядка условий? kievlyanin Microsoft Office Excel 9 29.05.2009 12:30
Delphi. Проблема с матрицей POPOV Помощь студентам 9 22.09.2008 07:11
Задача с матрицей на Delphi POPOV Помощь студентам 28 29.10.2007 06:39