Может функция преобразования из строки в Double глючит. Из Double в строку я взял FPC-шную, потому как родная KOL-овская не работала, а обратную - не помню трогал ли. Гляну как-то.
-----
Проблема в портированной функции KOL.Extended2Str() - разное поведение в 32 и 64 битах. Дефайном включил другую точность - вроде работает.
Редактировалось 2 раз(а), последний 2020-06-10 15:06:25
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Обновлен компилятор FPC до 3.2.0 RC1
Пакет соответствует ревизии 2337 основного SVN. Если у вас уже был установлен этот компилятор - перед установкой новой версии выполните HiAsm\compiler\FPC2\unins000.exe и удалите каталог HiAsm\compiler\FPC2 (если останется). Gik, вроде исправил отображение чисел в 64 битах. |
|||
карма: 26 |
| ||
Голосовали: | Joiner, flud |
Ответов: 207
Рейтинг: 14
|
|||
Установил. Сразу не ставилось из-за моего косяка.
Netspirit, Спасибо за обновление. Редактировалось 2 раз(а), последний 2020-06-10 13:11:44 |
|||
карма: 2 |
|
Ответов: 60
Рейтинг: 0
|
|||
Netspirit, Спасибо.
|
|||
карма: 1 |
|
Ответов: 60
Рейтинг: 0
|
|||
Теперь не работает MultiStrData с fpc-3.2.0-64. Пример в помощи Hiasm по элементу MultiStrData не работает правильно. С fpc-3.2.0-32 также неправильно работает. С fpc-3.0.4-32 и 64 вроде работает правильно.
Никто не проверял у себя MultiStrData? Редактировалось 5 раз(а), последний 2020-06-11 17:06:37 |
|||
карма: 1 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Gik, в файле hiStr_Enum.pas (строка 131) поправь функцию FParse():
Редактировалось 1 раз(а), последний 2020-06-12 12:37:32 |
|||
карма: 26 |
|
Ответов: 60
Рейтинг: 0
|
|||
Да. Вроде теперь работает. Спасибо большое.
|
|||
карма: 1 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Мои компоненты шифрования уже поддерживают данный пакет, поэтому может представлять интерес схема тестирования быстродействия для сравнения разных компиляторов.
Редактировалось 1 раз(а), последний 2020-06-12 14:29:33 |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit, fpc-32,64 работает быстрее. В тексте за 1 000 000 символов, заменяет больше 90 000 слов.
В FPC-64 примерно 450 мс. В Delphi чуть больше 4.5 секунд. |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Какой именно компонент? Просто там в некоторых местах для 64 бит не был портирован ассемблерный код и просто выключен. Но если компонент работает правильно, тогда это не тот случай.
Редактировалось 1 раз(а), последний 2020-06-12 15:44:41 |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
Самописный компонент. Могу скинуть в личку с текстом.
Редактировалось 2 раз(а), последний 2020-06-16 15:06:15 |
|||
карма: 2 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit писал(а): тестирования быстродействия для сравнения разных компиляторов.Протестировал разные компиляторы. |
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Хорошо. 64-битный себя неожиданно хорошо показывает. Ещё бы сравнить с 64-битным Delphi: https://transfiles.ru/4s4vv. Больше циклов надо давать, чтобы минимальное время теста было хотя бы 6 секунд. Тебе 300 будет нормально.
Редактировалось 2 раз(а), последний 2020-06-16 16:00:11 |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
300 циклов.
|
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Надо же. FPC-32 в среднем на том же уровне что новый Delphi-32, а FPC-64 обгоняет Delphi-64. Я у себя тестировал - у меня FPC одинаково проигрывал всем Delphi, а старый Delphi 4 и новый Delphi XE8-32 показывали одинаковые результаты.
В целом в кодах компонентов используются некоторые оптимизации под разные компиляторы по результатам тестирования, позволившие в некоторых случаях заметно ускорить FPC. Ускорить алгоритм Serpent у меня никак не получилось. В референсной имплементации, насколько я помню, там раундовые процедуры вообще были развернуты внутри основных процедур шифрования/дешифрования. С какой скоростью оно в оригинале работало - не знаю. Хотя может я неудачную реализацию портировал: вроде, есть ещё какая-то на основе таблиц. Редактировалось 4 раз(а), последний 2020-06-16 17:21:33 |
|||
карма: 26 |
|