Форум: "Прочее";
Текущий архив: 2014.10.19;
Скачать: [xml.tar.bz2];
ВнизБиблиотека UniConv Найти похожие ветки
← →
Друг (2014-03-05 15:33) [0]Я уже говорил на форуме, что пилю универсальную компактную быструю библиотеку для переконвертации текста из разных кодировок. Вот состоялся первый пре-альфа релиз: http://sourceforge.net/projects/uniconv/
Собственно на данный момент реализованы функции сравнения между разными типами и кодировками.
Под x64 вот такая картина:
https://a.fsdn.com/con/app/proj/uniconv/screenshots/UniConv.png
Под x86 менее радужная картина, по крайней мере для сравнений ansi <--> ansi, unicode <--> unicode, utf8 <--> utf8. Во-первых, потому что для x86 в RTL эти функции реализованы на ассемблере, во-вторых, потому что не учитывают кодовые страницы, а UniConv напротив смотрит кодировки. (что собственно и продемонстрировано при сравнении строк с разными кодовыми страницами)
Кому нужно - пользуйте сейчас, сообщайте об ошибках (если найдёте), все контакты указаны в исходниках
Будем ждать добавления функционала по конвертации
← →
имя (2014-03-05 19:21) [1]Удалено модератором
← →
имя (2014-03-05 20:33) [2]Удалено модератором
← →
DVM © (2014-03-06 14:08) [3]
> Друг (05.03.14 15:33)
На мой взгляд неплохо получается, Дмитрий.
← →
Друг (2014-03-06 15:08) [4]> DVM © (06.03.14 14:08) [3]
Спасибо
← →
Rouse_ © (2014-03-06 19:04) [5]Выглядит на первый взгляд намана, правда практического применения (для своих задач) я к сожалению не вижу, а так бы потестил...
← →
Друг (2014-03-06 23:59) [6]> Rouse_ © (06.03.14 19:04) [5]
> Выглядит на первый взгляд намана, правда практического применения
> (для своих задач) я к сожалению не вижу, а так бы потестил...
Ну... я вижу 2 задачи, которые близки к встречающимся в повседневной жизни.
Допустим тебе нужно найти какой-то элемент, где "ключом" является строка (допустим UnicodeString)
В этом случае можно написать неfor i := 0 to Count-1 do
if (Arr[i].Key = Value) then ...
аfor i := 0 to Count-1 do
if ({$ifdef CPUX86}Arr[i].Key = Value{$else}equal_ucs2_ucs2(Arr[i].Key, Value){$endif}) then ...
В этом случае получится профит на x64/ARM
Ну или нужно тебе провести сортировку, но без учёта регистра.
Тогда не нужно писатьif (UpperCase(S1) < UpperCase(S2)) then ...
можно написатьif (compare_ucs2_ucs2_ignorecase(S1, S2) < 0) then ...
Это будет значительно быстрее.
А вообще это дополнительная часть библиотеки. Я просто подумал, что она должна существовать.
Раз уж библиотека, предназначенная для конвертаций текста, то возможность быстро сравнить UnicodeString и UTF8String - быть должна :)
Главное будет впереди. И практическая возможность в первую очередь - чтение и запись текстовых файлов
Можно будет парсить XML и HTML практически во всех возможных кодировках (по стандарту).
Стандарт не охватывает, но у текстового файла может быть BOM для utf-1, utf-ebcdic, scsu, bocu-1. Вот они поддерживаться не будут :) Всё остальное будет
← →
Rouse_ © (2014-03-07 00:01) [7]
> Друг (06.03.14 23:59) [6]
У меня есть такие задачи, реализованные и скорость там немного повыше чем у тебя. Поэтому пока шо не вижу профита :)
← →
Друг (2014-03-07 00:08) [8]> У меня есть такие задачи, реализованные и скорость там немного
> повыше чем у тебя. Поэтому пока шо не вижу профита :)
Кастую добавленный код в бенчмарк :)
← →
Rouse_ © (2014-03-07 00:29) [9]
> Друг (07.03.14 00:08) [8]
> Кастую добавленный код в бенчмарк :)
Это будет сложно скрестить с мои движком поиска :)
Но так на всякий случай, я работаю с данными, индекс которых в районе гигабайта (сами данные в районе 60 гиг), скорость выборки около полусекунды :)
Движок есесно свой - никаких баз типа постгреса/оракла не юзаем :)
← →
Друг (2014-03-07 00:33) [10]> Rouse_ © (07.03.14 00:29) [9]
Сдаётся мне, видел я этот движок :)
← →
Rouse_ © (2014-03-07 00:34) [11]
> Друг (07.03.14 00:33) [10]
Не, то что ты видел это одна из самых первых реализаций энтого двигла :)
← →
Друг (2014-03-07 00:51) [12]Понятно :)
← →
Германн © (2014-03-07 03:31) [13]
> Не, то что ты видел это одна из самых первых реализаций
> энтого двигла :)
В последней реализации энтого двигла было нанято за символическую плату 1ГБ китайцев, каждому из которых была дана табличка с 60 ероглифами. Вы не поверите как эти китайцы быстро находят нужные слова по этим ероглифам!
:)
← →
картман © (2014-03-07 17:47) [14]
> Rouse_ © (07.03.14 00:29) [9]
>
>
> > Друг (07.03.14 00:08) [8]
> > Кастую добавленный код в бенчмарк :)
>
> Это будет сложно скрестить с мои движком поиска :)
> Но так на всякий случай, я работаю с данными, индекс которых
> в районе гигабайта (сами данные в районе 60 гиг), скорость
> выборки около полусекунды :)
> Движок есесно свой - никаких баз типа постгреса/оракла не
> юзаем :)
и сколько ж мегабайтищ весит это чудо?
← →
Rouse_ © (2014-03-07 18:43) [15]
> картман © (07.03.14 17:47) [14]
Двигло или данные?
Двигло в районе 700 кб в виде обектника, данные, на текущий момент 93 с половиной гига.
← →
Rouse_ © (2014-03-07 18:43) [16]
> картман © (07.03.14 17:47) [14]
Двигло или данные?
Двигло в районе 700 кб в виде обектника, данные, на текущий момент 93 с половиной гига.
← →
картман © (2014-03-08 00:19) [17]
> данные, на текущий момент 93 с половиной гига.
откуда столько? Точнее, что за данные?
← →
Rouse__ (2014-03-08 00:23) [18]исс
← →
alexdn © (2014-03-08 00:32) [19]В студии Артёма Лебедева есть онлайн кодировщик - http://www.artlebedev.ru/tools/decoder/
← →
alexdn © (2014-03-08 00:34) [20]вот там список кодировок - http://www.artlebedev.ru/tools/decoder/info/
← →
картман © (2014-03-08 00:47) [21]
> Rouse__ (08.03.14 00:23) [18]
>
> исс
Информационно-справочная система? А что за информация? Или какой тип информации? Тексты, картинки, видео или что? Ну просто интересно, что описывает такой объем информации?
← →
Друг (2014-03-08 04:40) [22]> alexdn © (08.03.14 00:32) [19]
> В студии Артёма Лебедева есть онлайн кодировщик - http://www.artlebedev.ru/tools/decoder/
> вот там список кодировок - http://www.artlebedev.ru/tools/decoder/info/
у меня заявлено больше
все кодировки, которые возможно встретить в XML/HTML (согласно стандарту) + все кодировки, которые могут вернуться по GetACP (включая POSIX) + почти все кодировки, на которые указывает BOM (включая например UTF-7 и различные вариации UCS4 unusual octet order)
← →
Rouse_ © (2014-03-08 17:01) [23]
> картман © (08.03.14 00:47) [21]
>
> > Rouse__ (08.03.14 00:23) [18]
> >
> > исс
>
> Информационно-справочная система? А что за информация? Или
> какой тип информации? Тексты, картинки, видео или что? Ну
> просто интересно, что описывает такой объем информации?
http://help.grandsmeta.ru/stroyinfo/
← →
Дмитрий СС (2014-03-08 17:03) [24]
> Ну
> > просто интересно, что описывает такой объем информации?
>
Текст в формате JPEG:)
← →
Rouse_ © (2014-03-08 17:07) [25]ЗЫ: информация в формате упрощенного HTML. Правда объем документов большой - по паре десятков метров каждый, обычный браузер не переваривает такие объемы, даже хром (либо зависает либо падает, IE гарантированно падает).
← →
Rouse_ © (2014-03-08 17:12) [26]ЗЗЫ: а вообще это сметная нормативная документация по всем регионам России и ближнего зарубежье. Приказы, методички и прочая светотень.
Грубо MSDN для сметчиков :)
← →
Друг (2014-03-08 17:31) [27]> Rouse_ ©
Безусловно ваша поисковая машина интересна. Но я бы попросил не обсуждать её в моей ветке. По возможности вернуться к теме ветки
← →
Rouse_ © (2014-03-08 17:33) [28]Вообще самая главная закавыка была в том, чтобы заставить ворочаться этого монстра с приемлимой для юзверя скоростью. Изначальная загрузка старой версии данной ИСС была (тока не ржите) - четыре с половиной минуты на базе обьема 12 гигов (в основном просадка была на построении индекса и загрузке данных для полнотекстового поиска). И жрало это чудовище почти всю память 32 битной ОС, т.е. около 3 гигов (конечно, был выставлен флаг IMAGE_FILE_LARGE_ADDRESS_AWARE).
Поиск был так же по времени пц. Оно искало документ в районе минуты (и то не факт что находило :)
Т.к. разогнать всю эту светотень нормальным образом не получилось - переписали ее с нуля за 8 месяцев и добились того что старт ИСС занимает 6 секунд (с подгрузкой всего вышеперечисленного), поиск практически моментальный (благо двигло позволяет это сделать) и самое главное - чичас эта монструозина отъедает всего-то в районе 400 метров оперативки, остальное хитрым образом кэшируется в свой аналог свопа и доступ к данным при необходимости практически моментальный.
Единственно что не смогли победить (из-за нюансов в движке индекса) это сложные поисковые заросы, где много "токенов", к примеру "1-2-3-скво-йцу"
← →
Rouse_ © (2014-03-08 17:34) [29]
> Друг (08.03.14 17:31) [27]
Это форум Димч, т.е. обсуждение.
Не нужно указывать как кому вести :)
В частности я отвечаю на вышепоставленный вопрос.
Но твои доводы я услышал и принял...
← →
Друг (2014-03-08 17:36) [30]> Rouse_ ©
Есть такие вещи как этика и взаимоуважении. В том чтобы испортить чужую ветку - нет ничего выдающегося
← →
Rouse_ © (2014-03-08 17:39) [31]Дима, блин - не нужно мне говорить о этике :)
Этика - это когда тебя банят на месяц - ты честно его ждешь, а не меняешь аккаунт чтобы снова зайти на форум :)
← →
Друг (2014-03-08 17:43) [32]Тоже верно :)
← →
Inovet © (2014-03-08 17:49) [33]> [31] Rouse_ © (08.03.14 17:39)
> это когда тебя банят на месяц
Как раз за свою особенную этику.
← →
картман © (2014-03-08 18:06) [34]
> Rouse_ © (08.03.14 17:33) [28]
>
> Единственно что не смогли победить (из-за нюансов в движке
> индекса) это сложные поисковые заросы, где много "токенов",
> к примеру "1-2-3-скво-йцу"
Этот запрос ищет данное слово?
← →
Дмитрий СС (2014-03-08 18:10) [35]
> добились того что старт ИСС занимает 6 секунд
Уверен и это не предел:)
← →
Друг (2014-03-08 18:13) [36]> переписали ее с нуля за 8 месяцев и добились того что старт
> ИСС занимает 6 секунд
Мда :)
← →
Rouse_ © (2014-03-08 18:19) [37]
> картман © (08.03.14 18:06) [34]
> > к примеру "1-2-3-скво-йцу"
> Этот запрос ищет данное слово?
Дефисы - это я показал разделители токенов (т.е. вводят без них).
← →
Rouse_ © (2014-03-08 18:20) [38]Точнее поисковый запрос в данном случае таков: "1 2 3 скво йцу"
← →
Rouse_ © (2014-03-08 18:25) [39]
> Дмитрий СС (08.03.14 18:10) [35]
> Уверен и это не предел:)
С использованием SSD конечно шустрее, тут упираемся только в скорость харда.
← →
картман © (2014-03-08 18:28) [40]
> Rouse_ © (08.03.14 18:20) [38]
>
> Точнее поисковый запрос в данном случае таков: "1 2 3 скво
> йцу"
странный нюанс:
> Единственно что не смогли победить (из-за нюансов в движке
> индекса)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2014.10.19;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.003 c