SQLite is freakin' fast |
Oct. 22nd, 2021|11:13 pm |
перевёл фронтэнд (гуй) почтового клиента на скулит-базы. ради интереса не стал ничего кэшировать (кроме распарзеного текста письма, готового к рендеру — потому что это долго, если там html, например). даже конверсия message-uid в индекс листбокса и обратно — через SQL-запрос.
оно не тормозит настолько, что я с удивлением узнал: «ой, у меня весь интерфейс полностью рендерится заново при каждом движении мыши» только заглянув в исходник.
у меня уй-либа всё рисует во фрэймбуфер, а потом его блитает. включая курсор мыши, если бэкэнд OpenGL (в X11 используется системный). я переключил на OpenGL — и мышь отзывчива так же, как и системная. при том, что каждый раз идёт полный рендер, с кучей SQL-запросов. при этом сами запросы каждый раз компилились из текстовой формы (это я уже починил, но чисто для красоты, а не для скорости).
в общем, на удивление всё оказалось даже быстрее, чем с кастомным форматом баз. и памяти жрёт меньше примерно на 20 мегов. при этом есть ещё очень быстрый полнотекстовый поиск по всей базе писем. и ушли в небытие все лочки, которые были нужны, чтобы фоновый поток получения почты всё не сломал. по факту, почту вообще можно совать в базы из другого процесса сейчас, и ничего не сломается. возможно, я так и сделаю: вынесу получалку в отдельного демона. |
|