===[ Про оптимизацию ]=== #post-id: 4325-16-32 #original-date: 29.05.2012 Tue #original-time: 4:32 PM #original-day: 4325 #original-host: WinXP Prof SP3 (Build 2600) Есть у меня программа Dic Sync, которая синхронизирует словари разных программ, чтобы по пятьдесят раз не добавлять одно и тоже слово в исключения. Программа хороша всем, только медленно работает. На данный момент вся красота хранится в обычном листбоксе, а при добавлении слов из внешних файлов для каждого слова вызывается LB_FINDSTRINGEXACT. Разумеется, полторы тысячи слов из четырёх файлов (в каждом по полторы тысячи) добавляются адски долго. Я решила немного пооптимизировать не прибегая к сложным структурам. Вот мой вариант. Берём коллекцию, где каждый элемент - другая коллекция со словами, начинающимися на определённую букву. Код первого символа в юникоде - ключ соответствующего элемента. Таким образом, вместо того чтобы искать по всему списку слов, программа ищет в списке, где все слова начинаются на определённую букву. Получилось гораздо шустрее. Та же операция делается почти мгновенно.