1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/a1027663760-EC

GitLife Service Account

Добавлено: модуль конфигурационного инструмента добавил новый параметр: [установка точности задержки] влияет на точность задержек (Sleep()), а также на скорость отклика при переключении потоков, при этом потребляет больше процессорного времени. В общем случае не рекомендуется устанавливать этот параметр слишком низко; если требуется локальная высокая точность ожидания, можно использовать соответствующие функции модуля, которые предоставляют параметры высокой точности, что обеспечит баланс между точностью и загрузкой процессора.

Добавлено: интегрирован проект PaddleOCR-json для реализации функции распознавания текста на изображениях с помощью OCR.

Добавлено: L_кольцевой_буфер_*(подпрограмма), L_кольцевой_буфер(класс) - высокопроизводительная структура кольцевого буфера, написанная на чистом ассемблере.

Добавлено: L_анонимный_канал(класс) - реализован с использованием асинхронных очередей, событийного драйвера и кольцевого буфера для реализации коммуникации через cmd-канал.

Добавлено: L_текст_переводить_символы_переноса_строк2(источник_текста, длина_источника_текста, формат_символов_переноса_строк, пропуск_последовательных_символов_переноса_строк, вторичное_сжатие_памяти, возвращаемая_длина) - написан с использованием пула памяти, встроенных ассемблерных инструкций и языка C.Добавлено: L_веб_скачивание_файла() - загружает файл в указанное место, поддерживает загрузку файлов большого размера, возвращает истину при успешной загрузке, ложь при возникновении ошибки.

Добавлено: все методы HTTP-запросов получили новый параметр [вынужденное использование определенного cookie] по умолчанию пустое значение = не вынужденное заменение; формат: a=1; b=2; c=3.
Этот параметр контролирует, вынужденно ли текущий запрос должен использовать определенный cookie, что полностью заменяет cookie, используемые при отправке HTTP-запроса, и не использует автоматическое объединение cookie внутри кода.

Добавлено: L_процесс_завершение_дерева_процессов() - завершает указанный процесс и все его подпроцессы, а также подпроцессы этих подпроцессов.

Добавлено: L_DLL_загрузка_файла(, [повторное выполнение при превышении времени ожидания]) - единица измерения: миллисекунды; по умолчанию 0 = не повторять; минимальный интервал повтора внутри 100 миллисекунд.
Эта функция контролирует повторную загрузку DLL при неудачной загрузке, что предотвращает неудачу загрузки из-за сканирования и блокировки DLL-файла антивирусной программой.Улучшено: L_текст_переводить_символы_переноса_строк(источник_текста, длина_источника_текста, формат_символов_переноса_строк, пропуск_последовательных_символов_переноса_строк, вторичное_сжатие_памяти) — переписано с использованием встроенных ассемблерных инструкций и языка C, добавлены функции, производительность повышена.Улучшено: L_кодировка_Url_кодированиеW() - добавлен новый опциональный параметр: CP, указывающий на целевую кодовую страницу, по умолчанию #L_CP_utf8.

Улучшено: L_Curl_http2winhttp(класс) - внутренняя реализация загрузки данных изменена с использования файлового кэша на кольцевой буфер (логика загрузки файла без изменений).
Это избавляет от проблем использования дискового ввода-вывода при обычной загрузке POST-данных, что также повышает производительность.Улучшено: L_Curl_http2winhttp(класс) >>> SetDownloadFilePath() - добавлен новый параметр [размер буфера] для установки размера буфера при загрузке файла, по умолчанию 65536 (64 КБ). Оптимизация: L_запрет_повторного_запуска_программы() [глобально_эффективно] параметр стал по умолчанию ложным; функция возвращает целое число: 1 — уже есть повторяющийся процесс, 0 — текущий процесс уникален, -1 — [глобально_эффективно] истинно, требуется права администратора для создания глобального объекта.

Оптимизация: L_ловец_исключений(класс) дополнительные проверки для языковых исключений (C++, .NET, Rust, Delphi, Java JNI, Lua, Python).

Оптимизация: L_ловец_исключений(класс) >>> инициализация() добавлен параметр [игнорировать_исключения_отладчика] по умолчанию ложным; этот параметр предотвращает сбои отладчика из-за исключений, связанных с точками останова.

Инструменты, такие как OD, могут вызывать соответствующие исключения при отладке вашего exe.

Оптимизация: L_пул_задач_процессов_основной(класс), L_пул_задач_процессов_дочерний(класс) схема коммуникации процессов изменена, теперь не используется командная строка; параметры инициализации дочернего процесса устарели.

Это предотвращает конфликты из-за некорректного чтения командной строки модулями браузеров.

Оптимизация: L_массив_целых_чисел_*() переписан с использованием компилируемого кода на C вместо рукописного ассемблера.Оптимизация: L_операция_генерация_случайного_числа(), L_операция_генерация_случайного_числа_длинное_целое() заменены на "серебряную" версию; третий параметр подпрограммы удален.

Оптимизация: L_проверка_XOR_операции(), L_проверка_XOR_операции2() заменены на части кода, использующие регистр esp, чтобы избежать проблем совместимости после кодирования в VM.

Исправление: L_NodeV8_выполнение_кода(), L_NodeV8_выполнение_кода2() исправлены проблемы с большим объемом памяти параметров, теперь поддерживаются параметры до 50 МБ.

Исправление: L_yyjson_только_чтение_парсинг() исправлена утечка памяти.

Исправление: L_множественный_буфер_вывода(класс) >>> обновление на жесткий диск() исправлено отсутствие записи в конце файла.

Исправление: L_HASH_*() исправлены ошибки определения набора команд процессора, приводящие к сбою на старых процессорах.

Исправление: улучшена проверка доступности набора команд процессора внутри модуля.

Исправление: L_rocksdb(класс) вместе с L_корутиной(класс) исправлены проблемы с застреванием при закрытии L_rocksdb.

Исправление: L_жесткий_диск_получение_идентификатора_жесткого_диска_md5(), L_жесткий_диск_чтение_сектора_жесткого_диска() исправлены проблемы с недоступностью данных из-за недостаточных прав доступа.Исправление: L_указатель_запись_короткого_целого_числа_0-4(), L_тип_текста_добавление_данных_из_указателя_данных(), L_тип_текста_W_добавление_данных_из_указателя_данных() исправлены проблемы использования регистра ebx без защиты.

Исправление: NCNN при использовании драйверов для видеокарт NVIDIA 50-й серии исправлены проблемы с застреванием и ошибками.

Обновление сторонних библиотек или функций/программ, включенных в модуль:
Обработка исключений в языке E: обновлено до версии v6.2.4. Изменена логика автоматического обновления удалённых данных: ограничено до одного обновления каждые 3 секунды, чтобы избежать замедления интерфейса из-за получения слишком большого объёма данных за один раз.
mimalloc: обновлен до версии v2.2.3
RocksDB: обновлен до версии 10.2.1
pcre2: обновлен до версии v20.45
OpenCV: обновлен до версии 4.11.0
Curl: обновлен до версии 8.13.0_3

Обновления других зависимых библиотек пропущены. . .

Последнее сообщение коммита: 新版本发布
24.04.2025 07:26
GitLife Service Account

Новое: L_Множественное буферное вывод для файлов (класс) >>> Добавить псевдоним файла (псевдоним файла, фактический абсолютный путь)
Если первый параметр методов записать текст() записать набор байтов() записать указатель данных() соответствует установленному псевдониму, фактический путь записи файла будет заменен на абсолютный путь, указанный в этом методе
Новое: [Множественный потокобезопасный вызов компонента окна] Супер-список_Получить количество колонок(), Супер-список_Получить заголовок колонки()

Улучшение: L_Файл_Чтение файла() Добавлен новый параметр: возвращать текстовый тип, по умолчанию ложь=возвращать набор байтов, истина=возвращать текстовый тип
Улучшение: L_Множественное буферное вывод для файлов (класс) Внутренний замок заменен, в теории будет лучше работать в многопоточном режиме (теоретическое улучшение не слишком велико)
Улучшение: L_Текст_Получить пустой текст(), L_Набор байтов_Получить пустой набор байтов() Логика возврата пустых данных изменена, теперь возвращается указатель данных, а не адрес 0, соответствующий поведению основной библиотеки

Исправление: L_Время_Преобразование в GMT формат 1() Проблема с несоответствием метки [день недели] ожиданияОбновление сторонних библиотек или модулей, связанных с функциями/программами:
Библиотека для мгновенного пакетирования и распаковки переменных обновлена до версии v2.5:

  1. Исправлено падение или генерация аномальных данных при пакетировании пустого набора байтов или пустого текстового типа.
  2. Исправлено падение при распаковке из-за передачи аномального набора байтов, добавлено дополнительное обнаружение.
    Curl: Обновлено до версии 8.12.1#1
Последнее сообщение коммита: v4.2.5.20250218
24.04.2025 07:25
GitLife Service Account

Добавлены: L_текст_взять_повторяющийся_текст(), L_текст_удалить_все_пробелы(), L_байты_взять_повторяющийся_байты() для замены функций ядра, обеспечивающих более высокую производительность.
Добавлено: L_новое_время_текстовый_формат_в_миллисекунды() преобразует строку с произвольным форматом времени в UTC-метку времени (в миллисекундах). Это полезно для любых сложных форматов времени, которые могут быть трудно распознаны другими методами.
Пример: 28 Nov 2044 03:13:01 GMT
Добавлено: L_каталог_очистить() очищает все файлы в указанном каталоге, включая все подкаталоги, но не удаляет каталоги.
Добавлено: L_виртуальная_таблица(класс) >>> установить_фокус() устанавливает фокус на текущий компонент.
Добавлено: L_потоковый_объект(класс) потокобезопасный; подходит для создания потока для циклического выполнения кода, а также для управления завершением потока, что упрощает процесс.
Добавлены: L_URL_() связанные подпрограммы для предоставления мощных и высокопроизводительных операций чтения и записи URL.
Добавлено: L_Curl_http2winhttp(класс) >>> установить_обработчик_данных() устанавливает обратный вызов для получения данных после отправки, может быть вызвано несколько раз.
Добавлено: L_Curl_http2winhttp(класс) >>> установить_обработчик_прогресса() устанавливает обратный вызов для отслеживания прогресса загрузки и отправки после отправки, может быть вызвано несколько раз.Добавлено: L_WSS_очистить_кэш_соединений() очищает внутренние данные соединений, такие как заголовки ответа, чтобы освободить больше памяти. Обычно следует использовать после завершения соединения.
Добавлено: L_потоковый_пул(класс) >>> задержка() автоматически отвечает на L_остановить_все_задачи() и L_восстановить_все_задачи().
Улучшено: L_winhttp(класс) код для обработки URL был заменен на L_URL_
() связанные подпрограммы, что повысило производительность. Теперь поведение обработки URL-перенаправлений почти такое же, как у curl.
Улучшено: L_очередь(класс), L_потоковый_пул(класс) внутренняя система приоритетов захвата блокировок потоков была улучшена, что повысило производительность многопоточного режима (уменьшило конфликты атомарных блокировок).
Улучшено: L_кодировка_Ansi_в_utf8() добавлены комментарии: если используется для отправки данных на веб-страницу, необходимо установить [удалить_конечные_нули] в true, иначе некоторые HTTP-серверы могут выдавать ошибку.
Улучшено: L_Winhttp(класс) >>> отправить() теперь автоматически кодирует в UTF8.
Улучшено: L_задержка() добавлен параметр [повысить_точность], по умолчанию false. Если параметр установлен в true, то в случае поддержки системы, точность задержки будет повышена.Улучшено: L_текст_взять_определенный_текст(), L_текст_взять_определенный_текст2() теперь поддерживают разделение на полугоризонтальные цифры, полугоризонтальные буквы, полугоризонтальные символы, полугоризонтальные буквы, полугоризонтальные символы и т. д., версия на чистом ассемблере. Оптимизация: L_текст_является_числом(), L_текст_является_строчной_буквой(), L_текст_является_прописной_буквой(), L_текст_является_буквой() преобразованы в чистый ассемблерный код. Оптимизация: L_WSS_соединение() добавлен новый параметр: автоматическое добавление заголовка Host; по умолчанию установлено значение "true", включено по умолчанию; при включении, если в [дополнительных заголовках] отсутствует Host, он будет автоматически добавлен. Оптимизация: L_NodeV8_добавить_библиотеку_() в комментариях добавлены замечания по использованию функций. Оптимизация: L_множественный_файловый_буфер_вывода(класс) теперь поддерживает режим одновременного вывода файлов в нескольких процессах; добавлены пояснения к параметрам в методе инициализации(). Оптимизация: L_lz4(класс) обновлено до последней версии библиотеки lz4, перепаковано для обеспечения стабильности и надежности, обновлены комментарии к подпрограммам.Оптимизация: внутри модуля hpsocket теперь автоматически выбирает подходящую версию для инициализации (например, обычно инициализируется мини-версия, при использовании функции wss автоматически инициализируется полная версия).
Оптимизация: в описании обратного вызова для некоторых функций внутри модуля заменено "hwnd" на "указатель на окно" для избежания путаницы у пользователей.
Исправление: L_операция_битового_инверсирования_
() исправлено наличие лишнего параметра в подпрограммах.
Исправление: L_директория_копирование(), L_директория_удаление(), L_директория_очистка() исправлен баг, связанный с бесконечным циклом при встрече с пустой директорией.
Обновление сторонних библиотек или функций, включенных в модуль:
RocksDB: обновлено до версии 9.10.0#1
OpenCV: обновлено до версии 4.10.0#3
Curl: обновлено до версии 8.11.1_3
NCNN: обновлено до версии 20241226
MMKV: обновлено до версии 2.0.2
Coost: обновлено до версии 20240904
mimalloc: обновлено до версии v2.1.9_20250111
lz4: обновлено до версии 1.10.0
Другие обновления зависимых библиотек опущены. . .

Последнее сообщение коммита: 版本更新前的提交
24.04.2025 07:23
GitLife Service Account

Новое: L_NodeV8_получить_рабочий_каталог() возвращает путь к L_NodeV8.exe
Новое: L_NodeV8_перезапустить_процесс() принудительно перезапускает процесс
Новое: L_копировать_каталог() копирует все файлы из одного каталога, включая подкаталоги, в другой каталог
Новое: L_получить_имя_каталога() например: C:\001\002\ возвращает 002
Новое: Инициализация_компонентов_окна_() добавлен параметр: использование событий обработки; при первом вызове этой команды, этот параметр контролирует использование событий обработки при работе с компонентами окна, что предотвращает блокировку очереди сообщений окна множеством параллельных потоков, что делает невозможным управление окном с помощью клавиатуры и мыши
Новое: L_тип_текста_W_() связанные подпрограммы для обработки символов Unicode
Новое: L_файлы_
() подпрограммы добавлены версии Unicode
Новое: L_перечисление_файлов_W(класс) версия Unicode для перечисления файлов
Новое: L_операция_бит_свойства_удалить() чистая версия ассемблера; удаление определенного битового свойства из свойств
Новое: L_перезапуск_программы()
Новое: L_кодирование_Base32_кодирование2(), L_кодирование_Base32_декодирование2(), L_кодирование_длина_вычисления_кодирования_Base32(), L_кодирование_длина_вычисления_декодирования_Base32() чистая версия ассемблераНовое: L_кодирование_Base32_кодирование(), L_кодирование_Base32_декодирование(), L_кодирование_получить_указатель_таблицы_кодирования_Base32() функции, обновленные на основе предыдущей строки
Новое: L_кодирование_Base58_кодирование2(), L_кодирование_Base58_декодирование2(), L_кодирование_длина_вычисления_кодирования_Base58(), L_кодирование_длина_вычисления_декодирования_Base58() чистая версия ассемблера
Новое: L_кодирование_Base58_кодирование(), L_кодирование_Base58_декодирование() функции, обновленные на основе предыдущей строки
Новое: L_получить_левую_часть_текста(), L_получить_правую_часть_текста() имеют более высокую производительность по сравнению с встроенными функциями Easy Language, все связанные коды внутри модуля заменены этими подпрограммами
Улучшение: L_NodeV8_инициализация() теперь инициализация использует локальную среду выполнения, что предотвращает проблемы совместимости
Улучшение: L_получить_восточно_азиатское_время() теперь получает только заголовок HTTP, а не полный HTML-контент
Улучшение: исправлены комментарии L_удалить_конечный_слеш_каталога()
Улучшение: yyjson теперь автоматически связан с глобальным буфером памяти модуля, что улучшает производительностьУлучшение: L_получить_исключение(класс) теперь может внутренне определить, является ли проблема из-за необработанных автоматически кодов при компиляции или из-за потоков, созданных сторонними модулями, DLL или библиотеками поддержки, которые не позволяют отслеживать выполнение кода.

Улучшение: L_получить_исключение(класс) добавлен адрес входной функции потока, что позволяет легче определить, какой DLL/библиотека создала текущий разбившийся поток; добавлен вывод фактических адресов вызова стека, что упрощает отслеживание информации с помощью декомпиляции.

Оптимизация: WebSocket-клиент. Количество используемых дескрипторов и потребление памяти для каждого соединения сокращены.

Оптимизация: Подпрограммы L_файл_чтение_(), L_файл_запись_() теперь проверяют переданные дескрипторы файлов, чтобы избежать передачи недопустимых значений, таких как 0 или -1, что может привести к аварийному завершению программы.

Оптимизация: В функциях L_окно_получить_заголовок() и L_окно_получить_заголовокW() устарели параметры времени ожидания; теперь используется более эффективный метод получения данных, поддерживающий различные ситуации зависания окон.

Оптимизация: В функции L_байтовая_последовательность_обратный_порядок() улучшена базовая производительность, добавлен метод автоматического выбора инструкций SSE2, что повысило производительность.Оптимизация: Улучшена производительность функций внутреннего кодирования в модуле.
Исправление: В функции L_NodeV8_выполнить_код2() исправлены ошибки выполнения.
Исправление: В функции L_yyjson_только_чтение_получить_объект_val() исправлена утечка памяти.
Исправление: В функциях L_кодировка_usc2_к_unicode() и L_кодировка_usc2_к_ansi() исправлено исчезновение символов "" в строках.
Обновление сторонних библиотек или модулей:

  • Модуль для поддержки пакетирования и распаковки переменных: обновлен до версии 2.3, исправлены проблемы с аварийным завершением при использовании библиотеки в виде DLL.
  • yyjson: обновлен до версии 0.10.0.
  • Curl: обновлен до версии 8.11.0_4.
  • RocksDB: обновлен до версии 9.7.2.
  • OpenCV: обновлен до версии 4.10.0.
    Другие обновления зависимых библиотек пропущены.
Последнее сообщение коммита: 日常更新
24.04.2025 07:21
GitLife Service Account

Добавлены функции L_NodeV8_*(), которые упаковывают nodejs для выполнения функций V8, обеспечивая безопасное выполнение JavaScript без сбоев, поддерживают смешанный вызов в многопоточной среде, пример файла: пример_NodeV8.e

Добавлена поддержка функции L_виртуальная_таблица(класс), которая позволяет пользователю дважды щелкнуть по ячейке для прямого изменения содержимого, пример файла: пример_виртуальная_таблица_двойной_клик_редактирование.e

Добавлена функция L_WSS_HTTP_заголовки_формат_в_массив_ключей_значений(), которая быстро преобразует формат HTTP-заголовков в массив ключей и значений типа L_ключ_значение, используемый для параметров заголовков в L_WSS_соединение()

Добавлена функция L_WSS_соединение(использование_синхронного_приема_сообщений) по умолчанию равна false, при включении текущее соединение может получать только текстовые/байтовые сообщения с помощью L_WSS_прием_синхронного_сообщения()

Добавлена функция L_WSS_прием_синхронного_сообщения() для извлечения сообщений из внутренней очереди текущего соединения; возвращает true, если есть сообщение, и false, если сообщений нет

Добавлены функции L_кодировка_является_GB18030(), L_кодировка_является_ANSI(), L_кодировка_является_BASE64(), L_кодировка_является_BASE16(); упакованы для использования при написании инструментов для выводаДобавлена функция L_удаление_пустых_каталогов() для удаления существующих пустых каталогов; в случае, если каталог содержит файлы или подкаталоги, операция завершается неудачей.

Добавлена функция L_удаление_каталога() для удаления существующего каталога и всех его подкаталогов и файлов; используйте эту команду с осторожностью. Возвращает true при успешном выполнении и false при неудаче.

Улучшена функция L_удаление_файла() с добавлением параметра "обработка_только_для_чтения_атрибута". По умолчанию равна true, автоматически обрабатывает атрибут "только для чтения" файла.

Улучшена функция L_копирование_файла() с добавлением параметра "обработка_только_для_чтения_атрибута". По умолчанию равна true, автоматически обрабатывает атрибут "только для чтения" файла.

Улучшены функции L_является_utf8(), L_является_utf82() с обновлением кода для повышения производительности; упакованы для использования при написании инструментов для вывода.

Улучшена функция L_виртуальная_таблица(класс) с добавлением проверки завершения создания виртуальной таблицы, чтобы избежать вызова до завершения создания, что может привести к непредвиденным проблемам.

Улучшена функция OpenCV для обнаружения объектов с использованием GPU-модели, теперь использует OpenCL вместо Vulkan-бэкенда.Улучшены функции L_CV_шаблон_соответствие(), L_CV_шаблон_соответствиеEx() с добавлением параметра "режим_соответствия": по умолчанию равен 0=нормированное соответствующее значение, подходящее для случаев, когда яркость и контрастность целевого изображения сильно изменяются, но форма остается неизменной. 1=нормированное соответствующее значение, подходящее для случаев, когда яркость и контрастность целевого изображения не сильно изменяются, но присутствуют некоторые шумы. 2=нормированное значение квадратичного расстояния, подходящее для большинства случаев, особенно когда между шаблоном и целевым изображением существуют значительные различия в яркости.

Улучшены функции L_winhttp(класс), L_curl_http2winhttp(класс) >>> auto() с автоматическим заполнением часто используемых заголовков, теперь по умолчанию равен false. Оптимизация: L_чтение_запись_лок(класс) >>> выход_из_чтения(), выход_из_записи().
Если используется неправильно, будет выведено сообщение об ошибке и активировано исключение памяти, что облегчит локализацию ошибок и определение потока выполнения кода.

Исправление: L_RocksDB(класс) >>> очистка().
Исправлено возможное появление бесконечного цикла в новой версии RocksDB, использована другая реализация.

Исправление: L_окно_получить_содержимое_контрола(), L_окно_получить_содержимое_контролаW().
Исправлено отсутствие одного символа в конце возвращаемой строки.Исправление: L_система_счисления_шестнадцатеричное_в_десятичное()
Исправлено исключение, вызванное наличием пробела в начале переданной строки.

Обновление сторонних библиотек или модулей:
Curl: обновлено до версии 8.10.1

Другие дополнительные зависимости обновлены, подробности опущены.

Последнее сообщение коммита: 新增:L_NodeV8_*() 相关函数
24.04.2025 07:19
GitLife Service Account

Добавлено:
L_виртуальная_таблица(класс) >>> Запретить_установку_переносимости_ширины_столбцов()

Добавлено:
L_указатель_сравнение_памяти() версия на ассемблере; сравнивает по байтам два блока памяти на равенство, возвращает при обнаружении различий; возвращает истину при совпадении, ложь при различии

Добавлено:
【Многопоточная_безопасность_вызов_оконных_компонентов】Прогресс_бар_EX_позиция()

Добавлено:
【Многопоточная_безопасность_вызов_оконных_компонентов】Супер_список_окна_EX_установить_иконку_проекта_целое(), Супер_список_окна_EX_установить_иконку_проекта_байтовое_множество(), Супер_список_окна_EX_установить_иконку_проекта_пустое()

Добавлено:
【Многопоточная_безопасность_вызов_оконных_компонентов】Окно_загрузить()

Добавлено:
L_время_получить_номер_недели2() Возвращает номер недели в году и номер недели в месяце

Добавлено:
L_таймер_запуск(класс) >>> Получить_форматированное_время2() Возвращает строку, содержащую время с момента запуска таймера до выполнения текущей команды

Добавлено:
L_CV_матрица_кодирование_в_память() Преобразует матрицу в указанном формате изображения, возвращает результат кодированияУлучшено:
L_обработка_исключений(класс) >>> Инициализация(регистрация_глобальной_цепочки_обработки_исключений) Совместимость с MSVC улучшена, комментарии обновлены: по умолчанию истинно; эта функция позволяет приоритету обработки исключений быть максимально высоким, что может привести к множеству записей исключений, что может вызвать проблемы совместимости; можно установить в ложь; если установить в ложь, обработка исключений может быть нарушена. Глобальный реальный режим кодирования не зависит от этого параметра
Улучшено:
L_таймер_запуск(класс) >>> Получить_форматированное_время() Использование ассемблера для переписания вычислений, ускорение скорости и добавление вычисления года
Исправлено:
【Новый】Динамический_тип_данных_генерация_кода_1.4.2.e Обновление вызова пула памяти для соответствия модулюУдалено:
L_поток_ответ_событие(класс) Этот класс является устаревшим кодом, давно заменен 【Многопоточная_безопасность_вызов_оконных_компонентов】
Удалено:
【Многопоточная_безопасность_вызов_оконных_компонентов】Супер_список_окна_EX_установить_иконку_проекта() Общие параметры были заменены на конкретные типы данных

Исправлено:
L_время_получить_номер_недели() Проблема с несоответствием ожидаемому значению
Исправлено:
L_часы(класс) Проблема с триггером события часов после установки периода в 0
Исправлено:
L_CV_матрица_создание_из_байтового_множества(), L_CV_матрица_создание_из_памяти_изображения() Проблема с загрузкой изображений в формате WebP

Обновление сторонних библиотек или модулей:
hpsocket: Обновлено до версии 6.0.3, включено использование mimalloc для улучшения производительности и дальнейшего уменьшения объема
Curl: Обновлено до версии 8.10.1_2
RocksDB: Обновлено до версии 9.6.1
OpenCV4: Обновлено до версии 4.8.0#22
Другие дополнительные зависимости обновлены...

Последнее сообщение коммита: 增加 例程_运行计时.e
24.04.2025 07:18
GitLife Service Account

Добавлены функции, связанные с OpenCV, примеры загружены в git; в настоящее время основное внимание уделено шаблонному соответствию, структура кода находится в стадии планирования, в будущем будут добавлены дополнительные функции в зависимости от требований.
Добавлены: [мультипотоковая безопасность вызова компонентов окна] Супер-список EX_Установить_иконку_пункта() Спасибо [без_никнейма] члену клуба за дополнительное спонсирование 88 юаней
Добавлены: L_Файл_Записать_в_файл(), L_Файл_Прочитать_из_файла() для замены и расширения команд чтения и записи файлов в языке EasyLanguage, эти команды в языке EasyLanguage иногда зависают на несколько секунд.
Добавлены: L_Корутина(класс) >>> Получить_текущее_количество_задач() Получает текущее количество задач, которые выполняются параллельно, это значение можно использовать для контроля параллелизма.
Улучшено: [мультипотоковая безопасность вызова компонентов окна] Внутренняя логика кэширования данных переписана, что значительно повысило производительность, добавлено кэширование для практически всех компонентов.
Теперь каждая деталь каждого компонента кэшируется отдельно, например, каждая строка и каждый столбец в супер-списке. Разница в производительности была проверена на процессоре 5950x, и без кэширования производительность увеличилась примерно в 70 раз.Также добавлен параметр для немедленного обновления кэша, что позволяет немедленно синхронизировать изменения в определенных компонентах. Улучшено: переписана логика перехвата исключений в модуле для функции «внешнего реального времени лога кода», которая теперь может использоваться в релизной версии программного обеспечения и значительно сократила использование места на жестком диске. Также добавлены функции поиска данных, теперь не требуется ручное копирование и вставка для анализа и обработки. Улучшено: код NCNN внутри модуля был развязан от OpenCV, что позволяет использовать только OpenCV с меньшим объемом. Улучшено: исправлены случаи злоупотребления блокировками чтения и записи внутри модуля, заменены на блокировки от Microsoft, чтобы избежать потери производительности при нагрузке процессора на 100%. Улучшено: внутренняя блокировка строки внутри класса L_Виртуальная_таблица был скорректирован, и избегаются возможные проблемы смертельного замыкания. Улучшено: частота выделения и освобождения памяти внутри класса L_Виртуальная_таблица при обработке сообщений окна была снижена. Улучшено: L_Операция_Битовые_атрибуты_существуют() был переписан в чистом ассемблере.Улучшено: внутренний процесс поиска приватных членов класса внутри класса L_Пул_потоков был уменьшен, использован встроенный ассемблер, после нескольких обновлений в предыдущей версии общая производительность была увеличена на 30%.

Улучшено: координаты слева, верхнего края, ширины и высоты результатов обнаружения YOLO внутри класса L_ncnn_yolo были изменены на целочисленные значения (округление до ближайшего целого числа).

Исправлено: L_Чтение_и_запись_файла_вставка_данных() предыдущая логика была написана не очень хорошо, что приводило к зависанию, переписана новая версия.

Исправлено: L_Пул_потоков >>> Получить_текущее_количество_потоков() баг, который приводил к зависанию при вызове после создания пула потоков или его уничтожения (внутренняя логика блокировки была изменена, забыли освободить здесь). Исправление: [Многопоточная безопасная вызов окна компонента] Высокая таблица_получить данные() возвращает общий тип память утечка проблемы

Обновление сторонних библиотек или модулей функций/программ:
Обработка исключений в языке E: обновлено до версии 6.2.0
NCNN: обновлено до версии 20240820
mmkv: обновлено до версии 1.3.9
Curl: обновлено до версии 8.9.1_3
hpsocket: обновлено до версии 6.0.2.1

Последнее сообщение коммита: ...
24.04.2025 07:16
GitLife Service Account

Удалено: L_Пул_памяти (класс) Внутренний пул памяти, реализованный мной ранее на чистом языке EasyLanguage, был удален. Теперь используется только mimalloc, а режим пул памяти 1 был изменен на не использование пула памяти.
Переименовано: L_Пул_памяти_*() Подпрограммы больше не используют глобальный класс, что позволяет уменьшить количество обращений к памяти и немного улучшить производительность.
Добавлено: L_Регулярное_выражение_создать(), L_Регулярное_выражение_поиск_всех(), L_Регулярное_выражение_получить_количество_соответствий(), L_Регулярное_выражение_получить_соответствующий_текст_по_индексу(), L_Регулярное_выражение_освободить_результат_поиска(), L_Регулярное_выражение_разрушить()
Обертка для библиотеки pcre2, поддерживающая JIT-компилятор, универсальные функции вызова + внутренняя обертка на чистых указателях, использует глобальный пул памяти модуля, высокая производительность, потокобезопасность.Добавлено: L_Таблица_виртуальных_функций (класс) >>> Создание (режим с приоритетом UI) По умолчанию установлено значение "ложь" = приоритет подпроцессов, в этом случае подпроцессы будут быстрее конкурировать за данные с UI-потоком, что может привести к замедлению UI при высокой конкуренции; "истина" = установка логики внутреннего блокировочного механизма для обеспечения приоритета обновления UI, в этом случае все операции над виртуальной таблицей будут ожидать обновления UI, то есть если UI замедлился, скорость операций над виртуальной таблицей также уменьшится.

Добавлено: [Потокобезопасные вызовы компонентов окна] Супер-список EX_установить_текст_элемента_W, редактор текста EX_установить_позицию_курсора, редактор текста EX_получить_позицию_курсора, редактор текста EX_вставить_текст, редактор текста EX_вставить_текст_W, редактор текста EX_установить_длину_выделенного_текста, редактор текста EX_установить_форматирование_выделенного_текста, редактор текста EX_получить_содержимое, редактор текста EX_установить_содержимое

Спасибо [члену без никнейма] за дополнительное спонсирование 288 юаней за эти новые функции.

Добавлено: Поле_ввода_получить_содержимое(), переключатель_выбора_выбрать(), выпадающий_список_выбрать(), Поле_ввода_EX_получить_содержимое(), выпадающий_список_EX_выбрать() Эти команды получили новый параметр [время_кэширования]Единица измерения: миллисекунды; По умолчанию: 0 = не кэшировать данные; Этот параметр указывает, насколько долго состояние компонента будет кэшироваться после чтения, чтобы избежать прямого использования компонента (что может привести к замедлению окна).
Каждый компонент имеет независимое время кэширования, что позволяет улучшить производительность при параллельном чтении в многопоточной среде.
Добавлено: L_Вычисление_адреса_элемента_массива() Сборка; Возвращаемое значение: начальный адрес + (элемент - 1) × размер элемента
Добавлено: L_Вычисление_выравнивания_целое(), L_Вычисление_выравнивания_длинное_целое(), L_Вычисление_выравнивания_двойная_точность(), L_Вычисление_выравнивания_десятичная_точность() Сборка
Добавлено: L_Общие_диалоговые_окна_открыть_файл(минимальное_количество_поддерживаемых_файлов) Этот параметр является количеством буферов; По умолчанию: 100, если требуется поддержка множественного выбора большого количества файлов, этот параметр можно увеличить.
Добавлено: L_MMKV (класс) >>> Категория_получить_все_категории() Получение всех категорий информации. Добавлено: L_RocksDB(класс) >>> колонки_все_колонки() извлекает информацию обо всех колонках
Добавлено: L_потоковый_пул(класс) >>> создать(возврат_события_освобождения_очереди) устанавливает данные внутренней очереди потокового пула.Перед освобождением будет вызван обратный вызов подпрограммы (подпрограмма принимает один параметр типа int: ID очереди). Вы можете освободить дополнительные данные очереди здесь, например, передача указателя на данные при вставке в очередь может быть полезной при остановке потокового пула; каждый потоковый пул выполнит текущий обратный вызов только один раз.

Оптимизировано: L_чтение_запись_записать_текст(), L_чтение_запись_вставить_строку_текста(), L_чтение_запись_вставить_текст(), L_чтение_запись_записать_строку_текста() текстовые параметры были заменены на универсальные, поддерживающие передачу текстовых переменных или указателей.

Оптимизировано: L_очередь(класс) улучшена логика ожидания таймаута при внутреннем извлечении из очереди и развязана с L_потоковый_пул(класс).

Оптимизировано: L_потоковый_пул(класс) улучшена логика взаимодействия с L_очередь(класс).

Оптимизировано: L_потоковый_пул(класс) при уничтожении потока внутреннее использование множественного выбора с ошибкой.

Исправлено: L_MMKV(класс) проблема с возможным неудачным чтением данных (длина внутренних данных не была получена, но записанные данные остаются безопасными).Исправлено: L_инкрементальное_обновление(класс) >>> после определенного обновления объединить разницу патча() проблема с ошибочным вычислением смещения указателя, приводящая к аварийному завершению
Исправлено: L_операция_двойная_точность_в_текст(), L_операция_двойная_точность_в_текст2(), L_операция_двойная_точность_в_текстEx(), L_операция_двойная_точность_в_текстEx2() проблема с вероятностью возврата неверных данных
Исправлено: L_общий_диалог_открыть_файл(возвращаемый_путь_выбранного_файла) проблема с отсутствием "" в конце пути при выборе нескольких файлов
Обновление сторонних библиотек или модулей:
Поддержка модуля: обновлена до версии 2.2, метод инициализации поддержки стал более стандартным
mmkv: обновлена до версии 1.3.6 (скомпилирована с использованием VC-LTL, поддерживает XP систему)
mimalloc: обновлена до версии 2.1.7 (скомпилирована с использованием VC-LTL, поддерживает XP систему)
Curl: обновлена до версии 8.9.0_1
RocksDB: обновлена до версии 9.2.1
OpenCV4: обновлена до версии 4.8.0#21
flatbuffers: обновлена до версии 24.3.25
libjpeg-turbo: обновлен до версии 3.0.3
openjpeg: обновлен до версии 2.5.2#1
liblzma: обновлен до версии 5.6.2
libpng: обновлен до версии 1.6.43#2
libwebp: обновлен до версии 1.4.0#1
protobuf: обновлен до версии 4.25.1
quirc: обновлен до версии 1.2
tiff: обновлен до версии 4.6.0#4
Перекомпилированные библиотеки из-за обновлений других библиотек: NCNN

Последнее сообщение коммита: 新版本已发布
24.04.2025 07:14
GitLife Service Account

Добавлено: L_ncnn_yolo (класс) - потокобезопасность; поддерживает модели фреймворка Darknet (yolov3, yolov4) с поддержкой一键转换模型源码, поддерживает GPU и другие оптимизации.
Добавлено: L_MMKV (класс) - потокобезопасность; производительность выше, чем у RocksDB; подходит для сценариев, где требуется хранение данных на жестком диске, и допустимо незначительное снижение производительности при сравнении с хеш-таблицами.
Добавлено: L_общий_диалог_открыть_папку() - создает общий диалог для открытия папки путем Hook.
Добавлено: L_упаковщик_создать(), L_упаковщик_добавить_данные(), L_упаковщик_получить_результат_упаковки(), L_упаковщик_уничтожить(), L_распаковщик_создать(), L_распаковщик_уничтожить(), L_распаковщик_получить_данные().
Добавлено: L_проверка_Xor_операция(), L_проверка_Xor_операция2() - похожи на rc4, но имеют более высокую производительность.
Добавлено: L_семафор (класс) и соответствующие версии подпрограмм.
Добавлено: L_потоковый_пул (класс) >>> добавить_в_очередь_универсальный_тип(), получить_параметры_задачи_универсальный_тип() - избегает необходимости преобразования параметров в байтовый массив при каждом вызове, что повышает производительность.
Добавлено: L_горячая_клавиша_ожидание_указанной_клавиши() - похожа на регистрацию горячей клавиши, но активно проверяет наличие указанной клавиши в текущем потоке.Оптимизировано: скорость отладки/компиляции модулей ускорена.
Оптимизировано: L_горячая_клавиша_() - внутренний мониторинг исходного ввода теперь работает в фоновом потоке, что обеспечивает более стабильную производительность.
Оптимизировано: L_виртуальная_таблица (класс) >>> вставка_столбца_пакетная() - теперь [ширина столбца] и [способ выравнивания] могут быть пустыми, а количество элементов массива может быть меньше количества заголовков столбцов.
Оптимизировано: L_виртуальная_таблица (класс) >>> обеспечить_отображение() - теперь можно вызвать сразу после вставки нового элемента.
Оптимизировано: L_файл_создать() - теперь автоматически создает директорию, если она отсутствует.
Оптимизировано: L_текст_удалить_начальные_конечные_пробелы() - добавлены два параметра (по умолчанию true): удаление начальных пробелов, удаление конечных пробелов.
Оптимизировано: L_текст_получить_пиньинь() - результаты для многозначных слов теперь совпадают с ядром EasyLanguage, а также оптимизирована скорость инициализации при первом вызове, что значительно улучшило производительность.
Оптимизировано: L_RocksDB (класс) - внутренние настройки изменены для решения проблемы бесконечного увеличения размера файлов журнала; добавлены новые оптимизационные настройки.
Оптимизировано: L_большие_числа_
() - подпрограммы, которые теперь проверяют, если входные данные пусты.Оптимизировано: L_текст_заменить_подтекст_из_указателя_данных() - теперь правильно обрабатывает нечувствительность к регистру.
Оптимизировано: L_память_пул (класс) - теперь по умолчанию использует однопоточный режим mimalloc.
Оптимизировано: переписаны основные методы преобразования кодировки с использованием ассемблерного кода и уменьшено количество копий памяти, что удвоило производительность.
Оптимизировано: L_wss_соединение() - улучшена процедура рукопожатия через прокси s5, добавлены дополнительные сообщения об ошибках при неудачном подключении.
Исправлено: L_потоковый_пул (класс) >>> добавить_в_очередь() - теперь не приводит к утечке дескрипторов при указании времени ожидания. Исправления:

  • Исправлено: L_Пул_потоков(класс) >>> Добавление в очередь() передача пустого байтового массива в параметрах вызова приводит к бесконечному циклу.
  • Исправлено: L_Текст_получить_тип_символов() L_Текст_получить_текст() различение полноконечных знаков препинания и китайских символов.
  • Исправлено: L_Получение_исключений(класс) использование после которого в режиме отладки EasyLanguage может привести к аварийному завершению программы (очень странно).
  • Исправлено: L_RocksDB(класс) >>> Flush() вызов многопоточного режима приводит к аварийному завершению программы.- Исправлено: Динамический тип данных (генератор) для избежания уничтожения при обращении к глобальной переменной EasyLanguage со значением 0.Обновления сторонних библиотек или модулей:
  • Microsoft mimalloc пул памяти: обновлен до версии 2.1.6.
  • Curl: обновлен до версии DLL 8.8.0_1.
24.04.2025 07:12
GitLife Service Account
  • Добавлено: L_Curl_http2winhttp(класс) >>> SetUploadDHead() Устанавливает формат заголовка запроса при загрузке данных.
    По умолчанию значение ложно = используется "Content-Length: длина данных"; значение истина = используется "Transfer-Encoding: chunked".
    Это добавлено для решения проблемы, когда некоторые HTTP-серверы не могут корректно обрабатывать заголовок "Transfer-Encoding: chunked", что приводит к невозможности получения загруженных данных (например, в случае E2EE).
    Этот переключатель добавлен для обеспечения совместимости (в случае, если сервер требует "Transfer-Encoding: chunked").
  • Добавлено: L_Текстовый_тип_добавить_данные_из_файла() L_Текстовый_тип_записать_в_файл(); L_Байтовый_тип_добавить_данные_из_файла() L_Байтовый_тип_записать_в_файл() Быстрое импорт/экспорт данных из файла.
  • Добавлено: L_Виртуальная_таблица(класс) >>> Событие_текущий_элемент_изменен() Обратный вызов, принимающий три целочисленных параметра: hwnd, индекс элемента, значение элемента.
  • Добавлено: L_wss_соединение() Добавлен новый параметр: возврат_сообщения_о_ошибке_соединения, который позволяет определить, на каком этапе произошла ошибка при неудачном подключении.
    • Улучшено: Внутренний код модуля был переработан для решения этой проблемы, хотя ранее этот баг никогда не возникал, но для обеспечения безопасности изменения были внесены.
      https://github.com/OpenEpl/TextECode/issues/10- Улучшено: L_Виртуальная_таблица(класс) >>> Получить_указатель_на_источник_заголовка() Добавлены комментарии для улучшения понимания поведения команды.
  • Улучшено: Внутренние значения сообщений окон/потоков теперь регистрируются с помощью функции RegisterWindowMessage, а не задаются произвольно.
    Это изменение затрагивает следующие части кода: L_Виртуальная_таблица(класс), L_Горячие_ключи_*(подпрограммы).
  • Улучшено: Переписан L_Целочисленный_массив_*(), уменьшено количество умножений, что улучшило логику кода.
  • Улучшено: Внутренний код поиска/обратного поиска текста/байтов был переработан, что затронул почти весь модуль.
  • Улучшено: При неудачном подключении L_wss_соединение() больше не вызывает событие разрыва соединения.
  • Улучшено: L_Байтовый_тип_добавить_данные_из_байтового_типа() Добавлен возврат значения, которое указывает на длину внутренних данных.
    • Исправлено: L_Байтовый_тип_добавить_данные_из_байтового_типа(), L_Байтовый_тип_установить_данные_из_байтового_типа() Исправлено проблемное поведение при передаче пустого байтового типа (после переписи на ассемблере забыли проверять на ноль).
  • Исправлено: L_DC_скриншот(класс), L_Битовая_картинка_скриншот(подпрограмма) Исправлено поведение, при котором в некоторых случаях возвращаемые данные битовой карты не соответствуют стандарту. Причина: при передаче скриншота в OpenCV возникали ошибки, а в процессе отладки было обнаружено, что файловый менеджер Microsoft также не может корректно отображать миниатюры. Самое странное то, что некоторые просмотрщики изображений вообще не выдают ошибок. Я провел весь день, изучая информацию в интернете, и наконец-то всё починил.
  • Исправлено: Баг в функции L_运算_计算对齐数值(), когда входное значение равно значению выравнивания, функция возвращала значение входного значения плюс значение выравнивания. Правильное поведение должно быть таким, чтобы функция возвращала входное значение.
  • Исправлено: Баг в функции L_wss_连接(), когда сервер возвращает HTTP-код состояния, функция неправильно интерпретировала код, что приводило к незапланированному разрыву TCP-соединения (причина - я прочитал 4 байта вместо 2 байт, возвращаемых hpsocket).
    Обновления сторонних библиотек или модулей:
  • Curl:
    DLL обновлено до версии 8.6.0_4
  • hpsocket:
    DLL обновлено до версии 6.0.1.6

Примечание: Фразы "L_运算_计算对齐数值()" и "L_wss_连接()" оставлены без изменений, так как это, вероятно, имена функций или переменных.

Последнее сообщение коммита: 异常捕获
1
https://api.gitlife.ru/oschina-mirror/a1027663760-EC.git
git@api.gitlife.ru:oschina-mirror/a1027663760-EC.git
oschina-mirror
a1027663760-EC
a1027663760-EC