FreeBasic
Главная
Вход
Регистрация
Вторник, 15.10.2024, 08:17Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Обновление библиотеки window9
haavДата: Суббота, 12.02.2022, 07:31 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: 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
Репутация: 3
Статус: Offline
Посмотрел код UTF8_UNICODE.bas, как я понял, ты решил использовать не виндовые функции для перекодировки? Вот те, что ты выкладывал, в ветке про перекодирование текста насколько они медленнее виндовых? Мне, впринципе пофиг, просто, вроде ты говорил, что виндовые быстрее. Или это в UTF8_UNICODE.bas сделано для кроссплатформенности?
Это не придирка, я просто сам ещё не решил, что лучше юзать. Твои самописные получается кроссплатформенные. Пытался подумать, как их заоптимайзить, но пока не придумал.
Поставим вопрос так, перегнать гиг текста на твоих функциях или на виндовых, какова будет разница? Пока самому лень проверять, вот и спрашиваю. Если разница пару секунд, тогда лучше твои.
 
haavДата: Среда, 16.02.2022, 09:41 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: 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
Генералиссимус
Группа: Администраторы
Сообщений: 1366
Репутация: 49
Статус: Offline
Библиотека с улучшенной английской справкой (спасибо пользователю RNBW) и оптимизацией UnicodeToUTF8 выложена.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Четверг, 17.02.2022, 01:16 | Сообщение # 5
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Спасибо, посмотрю. Естественно, буду использовать твой новый вариант.
 
  • Страница 1 из 1
  • 1
Поиск: