SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001927 | SAS.Планета | Рефакторинг | public | 13-05-2013 14:08 | 28-05-2013 06:20 |
|
Reporter | vdemidov | |
Assigned To | zed | |
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | 121010 | |
Target Version | 131111 | Fixed in Version | 131111 | |
|
Summary | 0001927: Собрать dll с реализацией CityHash |
Description | Для реализации эффективного кэширования линий полигонов и бинарных тайлов нужно иметь хорошую быструю хэш функцию с выходом 64 бита. Под Delphi я нашел только CRC64, но у нее плохо с равномерностью. Хорошая функция CityHash но она достаточно сложная для портирования под делфи, поэтому эффективнее будет вынести ее в отдельную dll.
Исходники живут по адресу http://code.google.com/p/cityhash/
Нужны такие функции:
// Hash function for a byte array.
uint64 CityHash64(const char *buf, size_t len);
// Hash function for a byte array. For convenience, a 64-bit seed is also
// hashed into the result.
uint64 CityHash64WithSeed(const char *buf, size_t len, uint64 seed);
// Hash function for a byte array. For convenience, two seeds are also
// hashed into the result.
uint64 CityHash64WithSeeds(const char *buf, size_t len, uint64 seed0, uint64 seed1); |
Steps To Reproduce | |
Additional Information | |
Tags | No tags attached. |
Relationships | child of | 0002076 | resolved | vdemidov | Добавить в наборы векторных объектов хэш входящих в них объектов и операцию проверки равенства | child of | 0002077 | confirmed | | Добавить вычисление хэша бинарных данных при загрузке из тайлохранилища | child of | 0002078 | resolved | vdemidov | Добавить вычисление хэша для растровых объектов при создании |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
13-05-2013 14:08 | vdemidov | New Issue | |
13-05-2013 14:08 | vdemidov | Status | new => confirmed |
13-05-2013 14:10 | vdemidov | Description Updated | bug_revision_view_page.php?rev_id=5372#r5372 |
13-05-2013 17:55 | zed | File Added: CityHash.zip | |
13-05-2013 17:58 | zed | Note Added: 0011378 | |
13-05-2013 18:11 | zed | File Added: CityHash.VC2010.zip | |
13-05-2013 18:22 | vasketsov | Note Added: 0011379 | |
13-05-2013 18:55 | vdemidov | Note Added: 0011380 | |
13-05-2013 18:58 | vdemidov | Note Added: 0011381 | |
13-05-2013 19:29 | vasketsov | Note Added: 0011383 | |
13-05-2013 20:49 | vdemidov | Note Added: 0011384 | |
18-05-2013 17:51 | zed | Assigned To | => zed |
18-05-2013 17:51 | zed | Status | confirmed => feedback |
20-05-2013 11:05 | vdemidov | Note Added: 0011408 | |
20-05-2013 11:05 | vdemidov | Status | feedback => assigned |
21-05-2013 05:19 | zed | Note Added: 0011410 | |
21-05-2013 06:08 | vdemidov | Note Added: 0011411 | |
21-05-2013 06:21 | zed | Note Added: 0011412 | |
28-05-2013 05:11 | zed | File Deleted: CityHash.zip | |
28-05-2013 05:11 | zed | File Deleted: CityHash.VC2010.zip | |
28-05-2013 05:12 | zed | Note Added: 0011422 | |
28-05-2013 05:13 | zed | Status | assigned => resolved |
28-05-2013 05:13 | zed | Fixed in Version | => 131111 |
28-05-2013 05:13 | zed | Resolution | open => fixed |
28-05-2013 05:13 | zed | Status | resolved => closed |
28-05-2013 05:13 | zed | Target Version | 24xxxx => 131111 |
28-05-2013 06:20 | vdemidov | Status | closed => resolved |
09-08-2013 08:31 | vdemidov | Relationship added | child of 0002076 |
09-08-2013 08:40 | vdemidov | Relationship added | child of 0002077 |
09-08-2013 08:45 | vdemidov | Relationship added | child of 0002078 |
Notes |
|
(0011378)
|
zed
|
13-05-2013 17:58
|
|
Либа собралась, а вот тестовая утилитка - нет, так что за работоспособность не скажу. Тестируй, авось заведётся. |
|
|
|
А как у неё с коллизиями для массива lonlat будет?
С murmur сравнивал? |
|
|
|
С коллизиями должно быть все хорошо. Собственно для массивов координат я и хочу использовать ее.
Murmur3 128 бит, что вроде бы избыточно. А по качеству они вроде бы близки. |
|
|
|
Zed, спасибо большое. Я надеялся, что ты скопилось и собрался об этом попросить, а ты уже все сделал. |
|
|
|
>Murmur3 128 бит
Так есть же Murmur2 какой-то вариант на 64 бита
Впрочем по большому счёту играться без разницы с какой.
ps. Тут кстати тоже Murmur упоминается:
http://habrahabr.ru/post/117360/ |
|
|
|
>Впрочем по большому счёту играться без разницы с какой.
Именно |
|
|
|
Я понимаю, что это уже наглость, но не мог бы ты сделать и простенький паскалевский юнит, что бы можно было эту dll пользовать в делфе? |
|
|
(0011410)
|
zed
|
21-05-2013 05:19
|
|
А в чём сложность написать прототипы для 3-х функций? Тут работы максимум на 10 минут... |
|
|
|
Да собственно никакой сложности разве что вопрос с типом вызова. Как я понимаю там cdecl. Просто у меня в последнее время и 10 минут нету :( |
|
|
(0011412)
|
zed
|
21-05-2013 06:21
|
|
>Как я понимаю там cdecl
Да.
>Просто у меня в последнее время и 10 минут нету
Вот когда время появится, тогда и поговорим. Оно и dll небыло смысла сейчас собирать, если ты не собираешься пока ничего кодить. Чисто лежит под сукном до лучших времён... |
|
|
(0011422)
|
zed
|
28-05-2013 05:12
|
|
|