An I/O error on a memory-mapped file cannot be caught and dealt with by SQLite. Instead, the I/O error causes a signal which, if not caught by the application, results in a program crash.
The operating system must have a unified buffer cache in order for the memory-mapped I/O extension to work correctly, especially in situations where two processes are accessing the same database file and one process is using memory-mapped I/O while the other is not. Not all operating systems have a unified buffer cache. In some operating systems that claim to have a unified buffer cache, the implementation is buggy and can lead to corrupt databases.
Performance does not always increase with memory-mapped I/O. In fact, it is possible to construct test cases where performance is reduced by the use of memory-mapped I/O.
Windows is unable to truncate a memory-mapped file. Hence, on Windows, if an operation such as VACUUM or auto_vacuum tries to reduce the size of a memory-mapped database file, the size reduction attempt will silently fail, leaving unused space at the end of the database file. No data is lost due to this problem, and the unused space will be reused again the next time the database grows. However if a version of SQLite prior to 3.7.0 runs PRAGMA integrity_check on such a database, it will (incorrectly) report database corruption due to the unused space at the end. Or if a version of SQLite prior to 3.7.0 writes to the database while it still has unused space at the end, it may make that unused space inaccessible and unavailable for reuse until after the next VACUUM.
Because of the potential disadvantages, memory-mapped I/O is disabled by default
Только время покажет к чему это приведет. А адаптироваться к изменениям нам не в новинку, хотя конечно и темп заметных изменений весьма подрос.
Вопрос на "поразмышлять": ОК, LLM с встроенной вероятностью выдать булшит by design всю интеллектуальную работу не заберут. Но когда появится что-то без этого недостатка - каков будет ответ разработчиков (или даже человечества в широком смысле)?..
Кажется, в статье не раскрыт важный технический момент - расширения предполагается писать на TypeScript насколько я помню, а у Вас почти весь код на C#. Как оно взаимодействует с приложением? Или, например, как рисуется UI - с помощью средств на TS или есть возможность получить нечто вроде DC и рисовать напрямую из C# стандартными средствами по типу System.Drawing? Мне кажется это было бы интересно раскрыть в статье или хотя бы комментарии.
Вам нейронка за 3 секунды любую регулярку по вашему запросу напишет.
Нейронка и статью эту написала :) Тем не менее, с принципом согласен - важно знать о наличии возможности или суметь вовремя таковую найти. С другой стороны бывают случаи, когда что-то упало и важна каждая секунда - тогда умение применить команду по памяти трудно переоценить.
Большое уважение за проделанную работу! Всегда открываю ваши статьи на Хабре, хотя на C++ не пишу уже довольно давно - обычно есть что почерпнуть и без языковой специфики.
P.S. Книжку купить не обещаю, но интересно было бы полистать, покрутить в руках. Это можно сделать где-то?
Жесть. Статья до уныния нейросетевая, тогда как несколько дней назад была отличная самописная (по крайней мере в большинстве своем): https://habr.com/ru/articles/996404/. Какая версия лучше - ответ очевиден.
Годная статья для того, чтобы познакомиться с темой 👍 Считаю, что middle+ разработчики должны про такое знать. На практике на собесах в основном плавают по этой теме.
А вы помните насколько для своего времени были хороши перевод и озвучка в Warcraft III (RoC и TFT)? После типичного Фаргуса это был просто глоток свежего воздуха. И голоса знакомые, и переведено с локализованным юмором (а-ля "интим и Гербалайф не предлагать" и "гоблин птица гордая, пока не пнешь - не полетит"). Вот бы кто-то смог рассказать о том, как появился этот шедевр!
Это что значит? 😅 Насколько я знаю, у этой фразы другой смысл в русском языке. Цензурирование мата не избавляет от необходимости правильно его переводить!
Хотя, знаете, растягивать хронометраж прохождения в два раза было не лучшей идеей
Не было ощущения искусственного затягивания игры. Не все локации получились одинаково изящными, но в целом Silent Hill 2 Remake адекватно играется свои ~15 часов.
BTW, Warcraft III Reforged не упомянули, наверное самый раскритикованный ремастер.
Конечно она видела готовые компиляторы во время обучения, причем всех доступных языков, учебные и "боевые". Я об этом выше пишу в комментарии. Кмк здесь не такой уж и прорыв, как позиционируется...
А если задуматься, то что именно здесь из очень крутого? Модель, которая видела код рабочих production-grade компиляторов и тонны обучающих игрушечных компиляторов, смогла повторить один из них. Недавно была статья про то, что браузер попытались повторить - там вышел полный провал. Самой модели от этого ни горячо, ни холодно, она просто выдала статистически наиболее вероятную последовательность. Как-то самостоятельно проанализировать результат и сделать вывод, что получился "компилятор курильщика", она не смогла... По мне никакого особенного прорыва нет по сравнению с базовой технологией (LLM).
доступные приложения оптимизированы достаточно хорошо
Если комментарий наберёт 50 лайков я открою QML-код оболочки и найду там 4 уровня наследования и математику анимаций на JavaScript 😅 </sarcasm>
Кроме шуток, оно не было оптимальным от слова совсем. Оболочку писали новички в QML, никто это не скрывал. Думаю, весь старый корявый код, написанный под диктовку доморощенных дизайнеров, до сих пор там.
Первая — лицензионные ограничения: новые версии Qt, на которых мог бы жить десктопный интерфейс, становятся недоступны по санкционным причинам
Ох, понимаю, у меня проект на Qt под Android, и он не собирался с 2019 года... От одной мысли о настройке на свежей ОС страшно, поэтому ищу сейчас способ организовать сборку с помощью контейнеров. Рассматривали такой вариант?
За 14 часов включая ночь многое изменилось? 😅 Поберегите себя немного 🙏
А вот эта БД-шка redb - она тоже на memory mapped files, как и lmdb? Судя по беглому поиску - да. Похоже, в текущей архитектуре это слабое звено и потенциально станет точкой отказа. Хороший материал по теме: Are You Sure You Want to Use MMAP in Your Database Management System? Еще в документации SQLite тоже есть по теме, для удобства процитирую:
Похоже в redb похожим вопросом уже задавались.
Только время покажет к чему это приведет. А адаптироваться к изменениям нам не в новинку, хотя конечно и темп заметных изменений весьма подрос.
Вопрос на "поразмышлять": ОК, LLM с встроенной вероятностью выдать булшит by design всю интеллектуальную работу не заберут. Но когда появится что-то без этого недостатка - каков будет ответ разработчиков (или даже человечества в широком смысле)?..
Кажется, в статье не раскрыт важный технический момент - расширения предполагается писать на TypeScript насколько я помню, а у Вас почти весь код на C#. Как оно взаимодействует с приложением? Или, например, как рисуется UI - с помощью средств на TS или есть возможность получить нечто вроде DC и рисовать напрямую из C# стандартными средствами по типу System.Drawing? Мне кажется это было бы интересно раскрыть в статье или хотя бы комментарии.
Ага, тоже обратил на это внимание. Хорошие художники копируют, великие - воруют (с)
Минутка нудноты: инструмент называется Compiler explorer, а Godbolt это просто фамилия автора (Мэтт Годболт).
Нейронка и статью эту написала :) Тем не менее, с принципом согласен - важно знать о наличии возможности или суметь вовремя таковую найти. С другой стороны бывают случаи, когда что-то упало и важна каждая секунда - тогда умение применить команду по памяти трудно переоценить.
Статья полезная, однако местами не дочистили прямой вывод ИИ видимо, стиль резко меняется и точность формулировок падает. Но все равно спасибо!
Большое уважение за проделанную работу! Всегда открываю ваши статьи на Хабре, хотя на C++ не пишу уже довольно давно - обычно есть что почерпнуть и без языковой специфики.
P.S. Книжку купить не обещаю, но интересно было бы полистать, покрутить в руках. Это можно сделать где-то?
Жесть. Статья до уныния нейросетевая, тогда как несколько дней назад была отличная самописная (по крайней мере в большинстве своем): https://habr.com/ru/articles/996404/. Какая версия лучше - ответ очевиден.
Годная статья для того, чтобы познакомиться с темой 👍 Считаю, что middle+ разработчики должны про такое знать. На практике на собесах в основном плавают по этой теме.
А вы помните насколько для своего времени были хороши перевод и озвучка в Warcraft III (RoC и TFT)? После типичного Фаргуса это был просто глоток свежего воздуха. И голоса знакомые, и переведено с локализованным юмором (а-ля "интим и Гербалайф не предлагать" и "гоблин птица гордая, пока не пнешь - не полетит"). Вот бы кто-то смог рассказать о том, как появился этот шедевр!
Это что значит? 😅 Насколько я знаю, у этой фразы другой смысл в русском языке. Цензурирование мата не избавляет от необходимости правильно его переводить!
Для Anthropic и правда успешный.
Не было ощущения искусственного затягивания игры. Не все локации получились одинаково изящными, но в целом Silent Hill 2 Remake адекватно играется свои ~15 часов.
BTW, Warcraft III Reforged не упомянули, наверное самый раскритикованный ремастер.
Конечно она видела готовые компиляторы во время обучения, причем всех доступных языков, учебные и "боевые". Я об этом выше пишу в комментарии. Кмк здесь не такой уж и прорыв, как позиционируется...
А если задуматься, то что именно здесь из очень крутого? Модель, которая видела код рабочих production-grade компиляторов и тонны обучающих игрушечных компиляторов, смогла повторить один из них. Недавно была статья про то, что браузер попытались повторить - там вышел полный провал. Самой модели от этого ни горячо, ни холодно, она просто выдала статистически наиболее вероятную последовательность. Как-то самостоятельно проанализировать результат и сделать вывод, что получился "компилятор курильщика", она не смогла... По мне никакого особенного прорыва нет по сравнению с базовой технологией (LLM).
Если комментарий наберёт 50 лайков я открою QML-код оболочки и найду там 4 уровня наследования и математику анимаций на JavaScript 😅 </sarcasm>
Кроме шуток, оно не было оптимальным от слова совсем. Оболочку писали новички в QML, никто это не скрывал. Думаю, весь старый корявый код, написанный под диктовку доморощенных дизайнеров, до сих пор там.
Статья навевает размышления по двум фронтам:
Первые версии популярных девайсов (и софта) могут быть на удивление простыми. Сложность можно накрутить потом, главное чтобы был спрос.
Как же мы привыкли к настолько продвинутым технологиям и воспринимаем их как данность.
Ох, понимаю, у меня проект на Qt под Android, и он не собирался с 2019 года... От одной мысли о настройке на свежей ОС страшно, поэтому ищу сейчас способ организовать сборку с помощью контейнеров. Рассматривали такой вариант?