[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как спастись от mysql-server в KDE 4.2



On 2009.03.16 at 20:21:02 +0200, Покотиленко Костик wrote:

> В Пнд, 16/03/2009 в 21:10 +0300, Иван Лох пишет:
> > On Mon, Mar 16, 2009 at 07:28:22PM +0200, Покотиленко Костик wrote:
> > > > 
> > > > Еще один важный момент _расширяемость_ Одно дело изменить API, другое --
> > > > добавить пару строчек в правильно написанный парсер. Да и потом, создается
> > > > впечатление, что Вы строго в рамках i386 работаете. За ее пределами в 
> > > > бинарных форматах геморроя куча.
> > > 
> > > Например?
> > 
> > endian 
> 
> Есть такая штука, называется "network byte order". Ещё примеры, а то
> куча маленькая?

Есть такая штука как misaligned memory access. На некоторых архитектурах
это просадка производительности примерно на порядок, а некоторые такой
гадости не любят, и сразу SIGBUS шлют.

Поэтому мы в наших криптографических бинарных форматах от использования
функций htons/htonl отказались. Проще из байтиков 32-битное или
64-битное целое собрать. Логическими операциями (что в общем-то от
strtol уже весьма слабо отличается по числу задействованых операций).

А еще есть такой замечательный формат как ASN.1 с его разнообразными
способами бинарного представления - BER/CER/DER etc. Так там очень
интересный способ хранения длин структур используется. Позволяющий
по-моему до 128 байт на поле длины (по 7 значимых бит в байте)
использовать. Очень весело все это дело парсить/сериализовать. Или
тамошние OID-ы. Тоже штука веселая. 
И всего-то универсальный формат для представления древовидных структур. 
Даже без гиперссылок.

Вот когда для реальной задачи начинают использовать бинарные форматы, 
то почему-то хрень получается по уровню сложности подобная тому ASN.1.
Или возьмем, скажем, бинарные форматы Microsoft Office. Уж в самом
микрософте-то единственный человек, который понимал что  там к чему,
по-моему, уже три года как на пенсию ушел.

Впрочем, у них и "текстовый" rtf не лучше. с его 7 байтами на русскую
букву.


Reply to: