Обновление библиотеки window9
|
|
haav | Дата: Суббота, 12.02.2022, 07:31 | Сообщение # 1 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| Очередное обновление:
Windows , Linux Добавлено UTF8ToUnicode UnicodeToUTF8 GetSystemDefaultFont GetCurentDefaultFont GetNameFromFont GetSizeFromFont GetStyleFromFont GetSizeStringFromFont SetFocus GetFocus SetWindowProperty GetWindowProperty DeleteWindowProperty
Переименованы функции SizeX , SizeY в w9SizeWidth , w9SizeHeight Мелкие исправления и улучшения.
Только Windows Добавлен необязательный параметр для ShellFolder
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
electrik | Дата: Среда, 16.02.2022, 03:19 | Сообщение # 2 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| Посмотрел код UTF8_UNICODE.bas, как я понял, ты решил использовать не виндовые функции для перекодировки? Вот те, что ты выкладывал, в ветке про перекодирование текста насколько они медленнее виндовых? Мне, впринципе пофиг, просто, вроде ты говорил, что виндовые быстрее. Или это в UTF8_UNICODE.bas сделано для кроссплатформенности? Это не придирка, я просто сам ещё не решил, что лучше юзать. Твои самописные получается кроссплатформенные. Пытался подумать, как их заоптимайзить, но пока не придумал. Поставим вопрос так, перегнать гиг текста на твоих функциях или на виндовых, какова будет разница? Пока самому лень проверять, вот и спрашиваю. Если разница пару секунд, тогда лучше твои.
|
|
| |
haav | Дата: Среда, 16.02.2022, 09:41 | Сообщение # 3 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| Сергей!
Тот вариант , что сейчас в библиотеке значительно уступает варианту WinApi. При том , функция UTF8ToUnicode написана более менее нормально и вряд ли где-то еще можно срезать. Что касается UnicodeToUTF8 , то хоть она и выглядит просто и красиво , но этот вариант чересчур использует строки , а значит куча alloc\realloc и сопутствующие расходы. При обширном использовании , разница может достигать в 10-15 раз! Это ужасно и конечно неприемлемо. Поэтому , я переписал эту функцию без всех этих строковых виляний, это позволит приблизиться к варианту winapi , но все равно разница будет где-то на 30%. Такой вариант меня уже устраивает , если учесть , что winapi использует таблицу , а у меня метод вычисления. Не хочется в библиотеке создавать огромный файл таблицы.
Чтобы было понятно по тестам: при ~100мб текста , в цикле по 100 байт за итерацию:
winapi: 1.8 сек текущий вариант (который у тебя на компе): 32 сек ->жопа оптимизированный вариант (который я скоро выложу): 2.3 сек
Так что , смотри сам , что тебе подходит.
Библиотеку с данной оптимизацией выложу в ближайшее время , как только один из английских пользователей пришлет мне улучшенный английский файл справки.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
haav | Дата: Среда, 16.02.2022, 19:45 | Сообщение # 4 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| Библиотека с улучшенной английской справкой (спасибо пользователю RNBW) и оптимизацией UnicodeToUTF8 выложена.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
electrik | Дата: Четверг, 17.02.2022, 01:16 | Сообщение # 5 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| Спасибо, посмотрю. Естественно, буду использовать твой новый вариант.
|
|
| |