Tad писал(а):
При /1 на выходе строки не будетДа, действительно, я не про то подумал. Символ же, должен быть в строке обязательно
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): При /1 на выходе строки не будетДа, действительно, я не про то подумал. Символ же, должен быть в строке обязательно |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, есть подозрение, что переписывание doLoad и doText для ListBox не есть самое оптимальное решение. Почему это нельзя было сделать в THIWinList?
------------ Дoбавленo в 22.55: еще небольшая просьба не оставлять задач вида Есть предложение по существенному ускорению загрузки текста по doLoad и doText если нет времени дать нормальное описание, то нужно сопровождать свое сообщение ссылкой на топик, где это описание можно найти. |
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Вау! Наконец-то. Dilma ответил.
Dilma писал(а): если нет времени дать нормальное описаниеДа я там и не видел нормальных, развернутых описаний, а потому и посчитал, что надо написать кратко. Вот со ссылкой да, я упустил, в следующий раз писать обязательно буду. А вообще-то это должно касаться всех в равной мере, которые в bugtracker пишут Почему я не сделал в THIWinList-e, тут могу сказать только одно -- метод doText еще можно туда перенести, но вот doLoad, в том виде, в котором он есть сейчас не получится никак, по причине того, что LB_INITSTORAGE работает только для класса ListBox, а он и дает огромный прирост скорости. Для doLoad можно сделать то же, но только без выделения буфера: ускорит в несколько раз но не на порядки. Если ты не будешь против, то я приведу эти методы в THIWinList к нужнму виду и тогда выложу. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): но вот doLoad, в том виде, в котором он есть сейчас не получится никак, по причине того, что LB_INITSTORAGE работает только для класса ListBoxпочему же не получится? В базовом классе делается метод для всех листов. В классе для ListBox он перекрывается с таким кодом:
|
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): В базовом классе делается метод для всех листов. В классе для ListBox он перекрывается с таким кодом:Не работает, я уже проверял. Вызов нужно делать только перед самим добавлением, иначе, любое обращение к очереди возвращает память на место. Вот так можно сделать в WinList-e, и это работает для обоих методов: и doText, и doLoad
Dilma писал(а): В базовом классе делается метод для всех листовТоже не катит. Не хотят с таким изменением нормально работать классы Edit, работают нормально только тогда, если не менять главный алгоритм |
|||
карма: 22 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Детально еще раз проверил. Удалось запустить на перекрытых методах, вроде, работает, но результат хуже, предложенного мной, в два раза. Да еще и код появляется в компонентах, а так ничего не надо.
А теперь объясни мне, чем перекрытие лучше исправления, всего одного, метода Достигнутые результаты, весьма, неплохие -- парсирование файла 10,9 Мб с добавлением результата в ListBox -- 298 мсек |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
если перегрузку делать так, как приведено в коде выше, то ничем не лучше. Если же ее делать так, как надо, то это дает гораздо больше гибкости для наращивания палитры в будущем, поскольку разработчику остается только переписать куски кода специфичные для его элемента не трогая основной отлаженный проверенный и оптимизированный алгоритм.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): оптимизированный алгоритмЯ в корне не согласен с существующим алгоритмом doLoad и doText в WinList-e 1. Зачем применять дважды doClear для контрола 2. MSDN настоятельно реомендует убирать отрисовку при создании больших списков, раньше, этого не было Dilma писал(а): поскольку разработчику остается только переписать куски кода специфичные для его элемента не трогая основной отлаженный проверенный и оптимизированный алгоритмВ принципе, замена специфичных функций для боксов, вполне можно заменить простым Add, потеря в быстродействии будет не сильно большая, но вот то, что перекрвтие отнимает существенное быстродействие, мне не сильно понятно, за счет чего, попробую проверить на файлах большего размера, возможно, потеря соизмерима с быстродействием на маленьких объемах Dilma писал(а): Если же ее делать так, как надоА как надо, твои рекомендации -- так как ты написал выше, или как-то еще можно ------------ Дoбавленo в 17.42: Или, все же, перекрыть полностью эти методы в боксах, оптимизировав их по-максимому, не трогая сам WinList |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Dilma писал(а): поскольку разработчику остается только переписать куски кода специфичные для его элемента не трогая основной отлаженный проверенный и оптимизированный алгоритм.Dilma, извините и без обид. Никак не могу понять: HiAsm с пакетами предназначен для разработчиков или для пользователей ? Dilma писал(а): делать так, как надо------------ Дoбавленo в 18.38: nesco опередил. |
|||
карма: 25 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
господа, прошу привести цитату или ссылку на сообщение, где говорится о том, что существующий(или ранее существовавший) код обсуждаемых методов является самым оптимальным.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): не трогая основной отлаженный проверенный и оптимизированный алгоритмМне показалось, что это относится к существующему. Извини, если я не так тебя понял. Но я корректно написал, что с существующим я не согласен, ожидая дальнейших обсуждений, как сделать луше |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Я такой ссылки не знаю.
Да и утверждение, что какой-то код является оптимальным - это из области фантастики. |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma, а можно более конкретные предложения по усовершенствованию, а то виртуально, я за твоими идеями не поспеваю
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): что с существующим я не согласенс существующим кодом по загрузки текста только безумец может согласится nesco писал(а): а можно более конкретные предложения по усовершенствованиючуть попозже покажу реализацию, которую хотелось бы иметь с учетом последних исследований ------------ Дoбавленo в 16.30: внес правки для ListBox и ComboBox. В сравнении с последней конфигурацией скорость увеличилась еще в 2-3 раза. |
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): В сравнении с последней конфигурацией скорость увеличилась еще в 2-3 разаОчень, даже -- хорошо ------------ Дoбавленo в 17.30: Dilma, проверил, посмотрел. Срочно убери вот это из WinList-a для контролов класса Edit, мы ускорили одно, но убили другое, я писал про это уже, что этот метод катит только для боксов. Лучше это перенести в сами боксы. Раньше Мемо читал за 1,5 сек 11 Мб файл, теперь, я замучался ждать, когда он считает
|
|||
карма: 22 |
|