OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 28 Апрель, 2024 03:20

Часовой пояс: UTC + 3 часа


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему  [ Сообщений: 649 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20, 21, 22 ... 33  След.
Автор Сообщение
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Суббота, 17 Июнь, 2023 11:32 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
p.s.: а с компилятором всё нормально, это я дебил, конечно: пытаться делать IS, где с одной стороны указатель, а с другой обычная запись. и, естественно, не читать текста ошибок, потому что я самый умный, а компилятор дурак.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Суббота, 17 Июнь, 2023 13:39 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
а, совсем забыл же! поскольку ни один современный проект не считается серьёзным, если у него нет code of conduct, то у LC теперь тоже есть. очень строгий, за любое его нарушение выгоняют даже Главного Автора Проекта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Суббота, 17 Июнь, 2023 17:56 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
эх. пора, в общем, порвать с наследием старого режима. признаюсь: до этого момента я перед изменениями старался думать о том, как их возвращать в mainline, и мала-мала себя ограничивал. но это становится всё более неудобным. стесняет широкие жесты. откладывал редизайн и перепись всяких кусков (типа гридов и тайла). но пора признать, что LC вряд ли когда-нибудь сможет быть совместимым с майнлайном настолько, чтобы оно имело смысл.

это не значит, что я прям вот вечером ломанусь всё переписывать, или что mainline плохой, а LC хороший. это значит, что я больше не буду думать о том, чтобы сохранять видимость совместимости, если мне вдруг покажется, что что-то стоит поменять. всё равно ничего с этой совместимостью не получается, тащемта. всё-таки LC давно уже полноценный форк, со своей идеей и этой… как там принято говорить за границей… а, миссией, во!

а вот что это значит почти наверняка — это то, что документы LC майнлайном читаться скорее всего скоро перестанут. простите, но меня битва за урожай^w совместимость умаяла. прозрачный импорт я себе, конечно, оставлю — и всё. в частности, больная на голову схема сохранения CHAR в текстовых моделях мне совершенно не нравится, и я не понимаю, зачем омики её сделали таким образом. в итоге она и на CHAR не мапится, и UCS-2 не является. может я и вовсе буду utf-8 туда писать, один фиг вся работа с моделью через райдеры идёт. возможно, потом ещё и кэши со строками туда же буду скидывать, чтобы не сканить весь документ на старте.

p.s.: кстати. а ведь деревья с кусочками тоже можно во временный файл писать. у меня всё равно же отдельный pool allocator — таки почему бы и да. тем более что я бампнул размер буфера на файл до 64 кб. а может тогда и настоящие b-trees туда впилить уже? оно примерно то же самое — counted trees — только лучше подходит для блочно-страничной организации. надо подумать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Воскресенье, 18 Июнь, 2023 01:41 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
ну чо, запускаю фуззер на ночь. ежели до утра не упадёт — то елы-палы, где ж я так хитро накосячил-то?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Воскресенье, 18 Июнь, 2023 09:52 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
не упало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Воскресенье, 18 Июнь, 2023 12:21 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
ну и. вряд ли кто сомневается в том, что деревья заруливают списки, но чисто для чего-нибудь.

список:
*** SEED: 66101F49E1FE6DB5H ***
BUF: 1190496; INS: 14; DEL: 28
...inserting...
....INSERT TIME: 241.404
......splits(list): 121195; merges: 3
...deleting...
....DELETE TIME: 180.263
......splits(list): 238819; merges: 153
...done.

дерево:
*** SEED: 66101F49E1FE6DB5H ***
BUF: 1190496; INS: 14; DEL: 28
...inserting...
....INSERT TIME: 0.174
......splits(tree): 121195; merges: 3
...deleting...
....DELETE TIME: 0.292
......splits(tree): 238819; merges: 153
...done.

список с кэшированием, без кэширования примерно в 1.8 раз медленней.

INS и DEL обозначают максимальный размер кусочка для вставки/удаления. размеры кусочков рандомные, позиции тоже (иногда вставляет в самый конец текста, впрочем). и дерево, и список пытаются сливать спаны, если это возможно (merges). ну, и разбивать приходится часто (splits). тест вставок заполняет весь буфер, тест удалений весь удаляет. особого смысла делать смешаный тест нет, потому что полная валидность дерева всё равно проверяется после каждой операции (но здесь времена без валидаторов, чистые мутации).

так что если вы зачем-то в какой-то задаче храните спаны в списках… ну, скорее всего не надо так делать.

замечу, что деревья с оверхедом на бесполезное и охранными assert-ами. на деле можно ещё немножко ускорить, но… зачем. тот случай, когда охрана не мешает вообще.

а, там между этими тестами ещё тест позиционирования по дереву, но он настолько быстро отрабатывает, что от него один спам, поэтому он в лог не квакает.

но чисто для полноты картины:
...seeking...
....SEEK TIME: 0.189

это по дереву, цикл для каждой из 1,190,496 позиций, с проверкой вычислением индекса по ноде (очевидно, что имея ноду, мы можем так же быстро вычислить её начальный индекс в нашем псевдо-массиве, как и найти ноду по идексу). без проверок на десять миллисекунд быстрее. результат вполне логичный, потому что все операции примерно O(log N).

а. и ещё статсы:
used nodes: 279996; pages: 2205
страницы — по 4 кб. менеджер страницы системе не отдаёт (пока дерево не уничтожено), потому что глубокого смысла в этом нет. можно, кстати, ещё немного ускорить, если забирать страницы у системы не по одной, а кучкой — но опять же: смысла не вижу.

ну да, текст с таким количеством кусочков — это патологический случай. но я как раз на патологии и люблю тестировать: если уж с ней нормально справляется, то про не-патологические случаи можно не думать вообще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Воскресенье, 18 Июнь, 2023 16:32 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
на всякий случай повторю, что это за дерево такое. это у нас автобалансирующееся дерево (вариант Arne Andersson'а, хотя для реализации оно неважно). только вместо ключей каждая нода содержит два поля:
Код:
nodeSize: INTEGER;
sizeLeft: INTEGER;
соответственно, `nodeSize` — это размер спана, который покрывает данная нода, а `sizeLeft` — суммарный размер спанов в левом поддереве. знать размер правого поддерева нам не нужно, этого достаточно, чтобы эффективно найти ноду, соответствующую некоторой позиции (я называю её индексом), или имея ноду, вычислить её индекс.

то есть, у нас есть некий массив, состоящий из span'ов (или runs, это в данном случае синонимы). они же «кусочки» (pieces) — тоже синоним. у каждого кусочка есть некие атрибуты, и кусочки единичного размера с подходящими атрибутами могут быть объединены в один длинный кусочек размером sum(piece_length).

coincidentally, это очень удобная структура для текстовых документов (и в BBCB используется именно она). текст с одинаковыми атрибутами можно считать одним кусочком (если все его элементы идут в хранилище последовательно).

поскольку операции вставки и удаления в произвольные места такого массива — это основные операции редактирования, то использовать для хранения именно массив — неэффективно. да, поиск там O(1) (ну, всё тот же O(log N), если элементом массива может быть кусочек больше единичного размера), зато вставка и удаление — O(N) (worst time).

если мы будем хранить кусочки в двусвязном списке (как делает BBCB), то вставка и удаление станут O(1), зато поиск — O(N). это немного амортизируется кэшированием позиции последней найденой ноды, и перемещением при поиске от этой ноды, а не от начала/конца списка. в среднем ускорение при random access — около 1.8 (как демонтсрирует мой fuzzy test).

а вот если мы возьмём сбалансированое дерево для того же самого, то у нас и поиск, и вставка, и удаление будут O(log N). с учётом aa tree — O(2*log N) worst time. то есть, для текста в четыре гигабайта, который тщательно порубан на очень-очень маленькие кусочки, потребуется в среднем тридцать две операции (плюс-минус ещё пять-десять на ребалансировку). ни в какое сравнение со списками это не идёт. (разница во времени обработки достигает четырёх и более порядков: чем больше кусочков — тем больше разница.)

если к каждой ноде приделать ещё и указатель на родителя, это чуть-чуть усложнит балансировку (пара лишних присваиваний), но даст нам две полезные фичи.

во-первых, операции вставки и удаления больше не требуют дополнительной памяти (стека для рекурсии): мы можем нерекурсивно найти нужную ноду, а после изменений пойти вверх по дереву, чиня его по дороге. более-менее constant memory, стало быть. на самом деле это не то чтобы очень важно: рекурсия глубиной в 64 — это наихудший и невозможный случай — не проблема. но нерекурсивный метод ещё и чуть-чуть быстрее.

и во-вторых: наличие указателя на родителя позволяет организовать обход дерева в любом направлении за O(1), без дополнительной памяти и состояний: нужен только указатель на ноду, и от неё можно легко переместиться влево или вправо. это очень важно для итераторов (райдеров).

в общем, если заменить в TextModel списки на такие деревья, то мутации текстовой модели можно считать как constant cost, и даже почти zero cost — вне зависимости от того, последовательные ли они, или мутатор скачет по тексту как будто его оса в зад ужалила.

на практике эта структура данных работает в моём сишном редакторе текстов, и работает отлично: вне зависимости от сложности и размера текста, редактор реагирует на пользовательские (и скриптовые) мутации со скоростью примерно: «не успел ещё кнопку отпустить, а уже всё готово!»

также, при небольшой модификации такие деревья можно использовать для хранения, например, длин строк (в отдельном дереве, параллельно основному дереву кусочков). надо только добавить в ноду поля:
Код:
len: INTEGER;
lenLeft: INTEGER;
это длина строки, и сумма длин строк в левом поддереве. размер самой ноды в таком дереве всегда 1. `leftLen` надо не забывать чинить при балансировке, конечно.

такое «дерево длин» даёт нам возможность как быстро находить длину (и начальную позицию) строки по её номеру, так и номер строки по позиции внутри неё. в принципе, можно было бы считать строки обычными спанами, но при структуре с двумя размерами ускоряется операция «найти строку по её номеру».

точно так же никто не мешает хранить подобным образом не только длины строк, но и полноценную информацию о форматировании: высоту строки в юнитах, например. и делить текст не на строки по признаку 02X/0AX/0DX/0EX, а по ширине. тогда нам надо один раз при загрузке отформатировать текст, и при мутациях можно обходиться очень дешёвыми инкрементальными изменениями; заодно можно делать точный попиксельный скролл. единственная проблема — один и тот же TextView может быть показан в разных фрэймах одновременно. я ещё не придумал, как это красиво решить. (ideas are welcome!)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Воскресенье, 18 Июнь, 2023 20:07 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
если хотите — вот предварительные наброски дерева. они на ультрапаскале и под LC, и только под линукс (потому что mmap). кому надо — адаптируйте, там несложно. WTFPL, как обычно. простите за танцы с SYSTEM.


Вложения:
Комментарий к файлу: fuzzy tester
AAPieceTreeTest.odc [22.86 КБ]
Скачиваний: 32
Комментарий к файлу: главный модуль
AAPieceTree.odc [52.75 КБ]
Скачиваний: 30
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Среда, 21 Июнь, 2023 08:35 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
(задумчиво) любопытно, кто-то хоть до середины прошлой простыни доплыл? мне, в принципе, как истинному графоману, доставляет удовольствие сам процесс складывания буковок, но в глаза самоотверженного героя я бы глянул тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 22 Июнь, 2023 01:21 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Вспомнилось из далёкого детства:
(злодей-гипнотизёр): Посмотри мне в глаза...
(контрагент молниеносным движением выцарапывает зенки , и держа их на двух пальцах как на вилке):
- В эти что-ль???

Ну я прочитал. Всё. Осталось дождаться когда понадобится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 22 Июнь, 2023 08:57 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
Artyemov писал(а):
Ну я прочитал. Всё.
автора это не може не радовать.
Artyemov писал(а):
Осталось дождаться когда понадобится.
никогда, конечно. стал бы я полезному учить, я этого вашего полезного сам не знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Среда, 28 Июнь, 2023 16:30 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
кстати, надо бы сделать в текстовую модель пружинки. мне, собственно, для всяких логов надо: слева, понимаишь, ник, справа дата, посредине фигулька. можно, конечно, пытаться прицелиться линейкой (и потом чинить линейку на каждое изменение размера), но по-моему проще сделать специальную пружинку. отдельные view не устраивают, потому что тогда вся красивая копипаста ломается.

вообще, конечно, это лучше сделать универсальной механикой вычисления размеров views в строке после её форматирования уже, но мне лень интерфейс изобретать. поэтому всуну как обычно флексы.

в принципе, для ситуации «текст слева и текст справа» проблема, как ни удивительно, решается просто выравниванием по правому краю и разделением левой и правой части строки табом. но если мне посерёдке хочется какую-нибудь иконку малевать — то тут уже без ручной рихтовки табулятора не обойтись. а лень.

хм… разве что добавить в линейки ещё один режим. я как-то никогда не смотрел, как именно линейки сделаны. кажется, пришло время.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Суббота, 01 Июль, 2023 19:53 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
эх. отвлекают всякие скучные практические задачи от Чистого Искусства. надо срочно что-нибудь в ящике сломать.

вообще, надо бы Ed25519 портануть, там вроде бы даже делений особо нет. и TweetNaCl. мне так-то скорость особо не нужна, лишь бы работало. не люблю сишные либы таскать, если чего по мелочи вдруг сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Понедельник, 03 Июль, 2023 05:40 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
кстати. в LC есть HostLzff3. это компрессор такой, продвинутый вариант того, что я тут на форуме показывал. с энтропийным кодеком, lazy matching и всё такое. вот шоп вы себе знали — это хороший компрессор. я на его основе сделал замену зип-файлов специально для случаев, когда надо random access без распаковки всего файла с самого начала: файлы нарезаются чанками по 64 кб (coincidentally, это размер словаря в LZFF3), каждый чанк отдельно пакуется LZFF3. так я имею заявить, что итоговый архив получается меньше зипов (ненамного, но меньше, и не только за счёт метаданных), и даже распаковывается быстрее (с сишным вариантом депакера). кстати, депакер LZFF3 ещё и памяти жрёт меньше, чем для zlib.

пока что эта библиотека на си (забавно: сначала я портировал LZFF1 с си на ультрапаскаль, а потом LZFF3 с ультрапаскаля на си), но я таки сделаю и для LC. только чачу сначала запилить надо, по некоторым причинам там чанки чачей ксорятся.

а вы можете просто посмотреть код пока. там аж целых два варианта декомпрессора: потоковый, и one-shot. одношотовый вообще не требует дополнительных буферов, только несколько килобайт стека (около двенадцати или шестнадцати, вроде бы, лень считать). изюминка там — битовый энтропийный кодек с несколькими предсказательными моделями. очень маленький, очень быстрый, но очень крутой. если у вас есть задача дожать что-то хаффманом или арифметикой, например — попробуйте этот. там буквально полтора десятка строчек.

если что — это вариация на обычную интервальную тему, только она строго на один бит. чтобы жать байт — нужно соединить кучку предсказателей в цепочку (512 штук). прелесть в том, что сам интервальный предсказатель использует всего четыре байта памяти и строк пять кода. плюс сверху интервальный кодек (он один для кучи предикторов), ему надо два-три INTEGER, и ещё десяток строк кода.

в общем, можете посмотреть в исходнике, как они в цепочки объединяются. в итоге получается адаптивный интервальный кодек, вполне сравнимый с хаффманом/арифметикой/range (ans не проверял, больно уж страшный), но при этом код простой как полено.

ещё там есть довольно неплохой CRC32 с табличкой на 64 байта, делает по две операции на байт. как бонус.


и чтобы два раза не вставать. активность в репе и этой теме поуменьшилась по одной простой причине: я допилил минимально достаточно, чтобы заниматься, собственно, написанием прикладного софта уже. это не значит, что LC дальше не будет допиливаться, просто я теперь буду делить время между написанием того, что собирался, и допилкой. так что деревья в TextModel обязательно будут, но попозже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Понедельник, 03 Июль, 2023 06:48 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
и если кто интересуется (кто вы, и зачем вы это делаете?), то среди всякого прикладного софта есть необходимость в IRC-клиенте и Tox-клиенте. я их постепенно запилю, и может даже выложу. они у меня и сейчас самописные (на дишечке), но не радуют. а Tox-клиент ещё и адово течёт. (я подозреваю, где, но мне так лень чинить…) ещё мне нужен редактор воксельных моделек (для этого надо будет доделать нормально OpenGL). в далёкой перспективе — редактор карт для дума. это из того, что может на публике появиться. когда-нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Среда, 05 Июль, 2023 08:38 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
кстати, любопытный факт: LZFF3 на ультрапаскале примерно в полтора раза медленней, чем более-менее оптимизированый (-O2, стратегические инлайны) код на си. это с учётом того, что ультрапаскалевский код не использует SYSTEM, и, соответственно, весь доступ к массивам делается с постоянной проверкой границ.

сжимал файл в тридцать мегов, так что там более-менее реальные тайминги.

это вот к вопросу о том, насколько ирл (а не в бенчмарках) полезны компиляторы с объёмом исходников в десятки мегабайт (ну, возьмём порезаный гцц), и насколько в реальных задачах, которые основное время проводят бегая по массивам, тормозит проверка диапазонов.

камень у меня — core2duo, очень старенький. хасвел, что ли. короче, 10+ лет ему точно.

я так подозреваю (исходя из моих фрагментарных знаний современных камней), что сейчас попытки выжать все возможные такты из компилированого кода довольно мало осмыслены. когда-то это имело сильно болшее значение, но поскольку современные камни имеют огромные кэши, register remapping, и кое-какую суперскалярность — сильная оптимизация стала значительно менее важным фактором.

если есть какой-то tight loop, где время очень-очень роялит — ну, можно его на асме переписать. а так… CP2, с его рудиментарным аллокатором регистров и отсутствующим оптимизатором, справляется — на реальных задачах, не на бенчмарках — вполне прилично. я думаю, что всякие cache misses будут в итоге стоить дороже, чем слабооптимизированый код. (кстати, камень в огород фанатов «шыйсят читыри бита визде»: алё, парни, у вас все указатели магически раздуваются в два раза, и адово гадят в кэш!)

время в очередной раз доказывает, что простота — залог успеха. ну да, мы эксплуатируем запредельную сложность современных камней, конечно, но: а почему её не эксплуатировать, если она уже есть? зато можно перестать беспокоиться о том, что компилятор CP2 устарел, и его срочно надо заменять на что-нибудь другое, Очень Сложное и Очень Оптимизирующее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Среда, 05 Июль, 2023 14:41 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 113
Откуда: Equestria
ну а кто сомневался?
там кстати в компиляторе есть ключик для отключения проверок индексов, что показывает тест с ним?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Среда, 05 Июль, 2023 14:57 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
SovietPony писал(а):
там кстати в компиляторе есть ключик для отключения проверок индексов, что показывает тест с ним?
а мне лень, это надо цельный командер писать вместо хоткей тыкнуть.

p.s.: я подозреваю, что результаты особенно не изменятся. современные камни очень хороши в спекулятивке и предсказаниях переходов, так что большинство этих проверок улетает в нуль всё равно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 06 Июль, 2023 01:56 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
точно как я и предполагал: со всеми выключеными проверками ускорение примерно в 1.09 раза. ну, на тридцати метрах срезало пять секунд из шестидесяти. как по мне — у нас практически бесплатная безопасность.

на распаковщик, кстати, вообще не повлияло, какие-то десятки миллисекунд, в районе погрешности.

p.s.: зато скомпиленый код занимает 6664 байта. даже как-то захотелось так и оставить.

p.p.s.: алгоритмические ускорения рулят потому что. прошлый вариант паковал за 80 секунд (при том же выходном результате, байт-в-байт). двадцать секунд как с куста чисто алгоритмикой. а если выключить lazy matching, то на 30 мегах мы теряем 200 килобайт, зато пакует оно за 19 секунд (с выключеными проверками за 18, что в принципе ни о чём, потому что погрешности измерения; ну, пол-секунды, может, выигрывает).

я уверен, что ленивый матчер можно ещё чуть-чуть ускорить, тоже чисто оптимизацией алгоритма, но мне откровенно лень. матчер там, по факту, делает местами двойную работу, так что я думаю, что можно раза в полтора-два ускорить. но сейчас код красивый, не хочется портить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox: Lament Configuration
СообщениеДобавлено: Четверг, 06 Июль, 2023 06:25 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
проверки индексов, естественно, не бесплатны, и не почти бесплатны, а примерно 10% от времени


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 649 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20, 21, 22 ... 33  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB