Огромное количество вызовов AnsiCompareText, показываемых профайлером, — следствие неуемного использования сортированных строковых списков тут и там. Начнем с оптимизации TgdcCustomClassList. Заменим внутренний TStringList на TStringHashMap из библиотеки JCL.
UPD: Пока вынуждены все вернуть назад. На индекс класса в TgdcCustomClassList сильно завязаны объекты редактора скрипт-объектов, что уже само по себе неправильно. Зачем хранить индекс в списке, когда можно просто хранить ссылку на класс? И потом, одно добавление в сортированный список и все привязки сделанные к индексам становятся недействительными.
Комментариев нет:
Отправить комментарий