Имеется тип записи
- Код: Выделить всё
Type SabjRecord
FromName as String 'имя отправителя
ToName as String 'имя получателя
Name as String 'тема письма
DateTime as String 'время и дата создания сообщения
FromAdress as string
End Type
Имеется так же массив таких записей arrSabj().
Хочется организовать статистику по конференции: наибольшее количество постов, наибольшее количество полученных сообщений, и отдельно по каждому отправителю количество отправленных и количество полученных.
Я отобрал уникальные имена через коллекцию. После этого загнал элементы коллекции в сортированный список. После этого из сортированного списка загнал все имена в массив arrNames(), который содержит записи типа
- Код: Выделить всё
Type tNames
Name as String
PostCount as Integer
ReplyCount as Integer
End Type
После этого я пробегаюсь по массиву сообщений (arrSabj) и для каждого сообщения ищу в массиве arrNames() имя соответствующее текущему отправителю. Если нахожу, то увеличиваю значение arrNames().PostCount на 1.
При количестве сообщений до 3 000 - скорость выполнения ещё терпима. Но при количестве сообщений ближе к 9 000 - вышеописанная операция занимает примерно 38 сек. - что меня совсем не радует.

Скорость сильно зависит от количества сообщений и количества подписчиков конференции.

Подскажите плиз структуру алгоритма для построения статистики или дайте пример, плиз.