Леонид писал(а):
для похожести текста на литературное произведение Верхние то точки у Вашего RND не работают.
Вот немного подправил и привел в божеский вид

"Тестовый генератор строк"
code_17916.txt
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): для похожести текста на литературное произведение Верхние то точки у Вашего RND не работают. Вот немного подправил и привел в божеский вид ![]() "Тестовый генератор строк" code_17916.txt |
|||
карма: 25 |
| ||
файлы: 1 | code_17916.txt [8.5KB] [344] |
Ответов: 8938
Рейтинг: 824
|
|||
Tad, ой, Tad уел, но мне простительно - склероз старческий, хаб установил, а линии не провёл
![]() ![]() |
|||
карма: 19 |
|
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Неее, ребята -- я так просто не сдамся. Я решил детально проверить быстродействие этих кодов, так вот ваш "любимый" ASM код оказался в глубо... (дальше сами догадаетесь где). Я померил реальное время исполнения кода и вот что получил в результате -- 5,5 раз, это вам не петушки грызть
Тестовая схема в аттаче. Что не говори, а против алгоритма не попрешь ![]() Какие теперь будут аргументы в вашу пользу ![]() |
|||
карма: 22 |
| ||
файлы: 2 | test_4.png [16.6KB] [331], testposex_3.sha [5.6KB] [167] |
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Я вас еще не добил с вашим asm-кодом, который уступает даже обычному посимвольному поиску, что ж, держите последний релиз со встроенным алгоритмом поиска одиночного символа по методу "грубой силы". И тут asm-код облажался
![]() |
|||
карма: 22 |
| ||
файлы: 2 | test_5.png [15.9KB] [293], testposex_4.sha [11.3KB] [180] |
Ответов: 16884
Рейтинг: 1239
|
|||
У меня - поиск одиночного символа - преимущества не вижу
![]() и так при длине SubStr до 5-ти знаков. (не работает под FPC) ------------ Дoбавленo в 11.03: |
|||
карма: 25 |
| ||
файлы: 1 | test1.png [18.6KB] [321] |
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Tad писал(а): У меня - поиск одиночного символа - преимущества не вижуЯ не расчитывал на большое преимущество, это защита от дурацкого поиска одного символа, и если оно не больше, а такое же, то нафига там asm код, то что там сделано для одиночного символа гораздо меньше весит, чем этот asm код ------------ Дoбавленo в 11.06: Tad писал(а): не работает под FPCИ не будет работать -- там не переделанный ASM |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): это защита от дурацкого поиска одного символаnesco, я не против Бойля-Мура. Попробывать бы Б-М на asm, ![]() |
|||
карма: 25 |
|
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Tad писал(а): Попробывать бы Б-М на asmНашел, пробовал, хреново работает, хуже чем оптимизированный Delphi ------------ Дoбавленo в 11.14: Tad писал(а): и так при длине SubStr до 5-ти знаковБ-М у тебя отстает до 5-ти символов, так, что ли ![]() |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, Да.
Вернее при 5 почти одинаково - разница минимальная |
|||
карма: 25 |
|
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Tad писал(а): Вернее при 5 почти одинаковоУ меня при 2-х почти одинаково |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Вот мои результаты (в первой строке блока в колонке позиция - SubStr)
И проверь на обыкновенных строках (реальная жизнь) Обычено при длине <255 ищем что-то поменьше. |
|||
карма: 25 |
| ||
файлы: 1 | test2.png [19.8KB] [314] |
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Tad писал(а): Вот мои результатыОткуда в первой проверке такой результат, я же там поставил другой модуль, а не чистый Бойер-Мур ![]() Ты что, специально искажаешь результат, применяя не оригинальные модули ![]() Вот мой результат на тех модулях, которые я тебе дал ------------ Дoбавленo в 13.51: А это, вообще -- что-то |
|||
карма: 22 |
| ||
файлы: 2 | test_6.png [14.1KB] [251], test_7.png [11.9KB] [320] |
Ответов: 16884
Рейтинг: 1239
|
|||
Модуль из testposex_4.sha
------------ Дoбавленo в 13.54: nesco писал(а): Ты что, специально искажаешь результат, применяя не оригинальные модули Наверное больше твои идеи тестить не буду. |
|||
карма: 25 |
|
Разработчик
Ответов: 26200
Рейтинг: 2137
|
|||
Tad писал(а): Наверное больше твои идеи тестить не будуНе злись, давай нормально проверим все. Но я не мог понять, как в однном случае у тебя получилось 159 msec, и тот же поиск одного символа дал у тебя 363 msec, как со старым модулем, вот я и подумал, что ты воткнул старый модуль. Попробуй лучше результат с цифрами ------------ Дoбавленo в 14.02: Что мы видим в результате, а все то же, что я и говорил, что asm-код зависит от типа проца, и на регистровых операциях (на чем и построен asm-код) AMD обгоняет Intel в 1,5 раза (88 msec против 135 msec) ------------ Дoбавленo в 14.06: Как жаль, что я не знаю ассемблер x86, а то бы переложил текущий алгоритм Бойер-Мура на asm. Я попытался начать, но что-то туго дается он мне, слишком неординарные у него заморочки ------------ Дoбавленo в 14.12: А вот я попытался найти HiasM! в License.txt ------------ Дoбавленo в 14.31: Tad, двай без обид проверим вот этот вариант неоптимизированного asm-кода Бойер-Мура. Какие результаты он у тебя показывает |
|||
карма: 22 |
| ||
файлы: 2 | test_8.png [11.6KB] [317], testposex_6.sha [8.1KB] [202] |
Ответов: 16884
Рейтинг: 1239
|
|||
А вот теперь без обид: или ты выкладываешь не то, что сам тестишь ?
Давай договоримся в Form.Caption ложишь номер теста. Вот моя картинка (если задать несуществующее слово, то Result= -1 ) ------------ Дoбавленo в 17.06: Позиция на 1 меньше, а время больше |
|||
карма: 25 |
| ||
файлы: 1 | test6.png [7.4KB] [268] |