View Issue Details

IDProjectCategoryView StatusLast Update
0001927SAS.ПланетаРефакторинг / Refactoringpublic28-05-2013 06:20
Reportervdemidov Assigned Tozed  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version121010 
Target Version131111Fixed in Version131111 
Summary0001927: Собрать 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);
TagsNo tags attached.

Relationships

child of 0002076 resolvedvdemidov Добавить в наборы векторных объектов хэш входящих в них объектов и операцию проверки равенства 
child of 0002077 confirmed Добавить вычисление хэша бинарных данных при загрузке из тайлохранилища 
child of 0002078 resolvedvdemidov Добавить вычисление хэша для растровых объектов при создании 

Activities

zed

13-05-2013 17:58

manager   ~0011378

Либа собралась, а вот тестовая утилитка - нет, так что за работоспособность не скажу. Тестируй, авось заведётся.

vasketsov

13-05-2013 18:22

manager   ~0011379

А как у неё с коллизиями для массива lonlat будет?
С murmur сравнивал?

vdemidov

13-05-2013 18:55

manager   ~0011380

С коллизиями должно быть все хорошо. Собственно для массивов координат я и хочу использовать ее.
Murmur3 128 бит, что вроде бы избыточно. А по качеству они вроде бы близки.

vdemidov

13-05-2013 18:58

manager   ~0011381

Zed, спасибо большое. Я надеялся, что ты скопилось и собрался об этом попросить, а ты уже все сделал.

vasketsov

13-05-2013 19:29

manager   ~0011383

>Murmur3 128 бит
Так есть же Murmur2 какой-то вариант на 64 бита
Впрочем по большому счёту играться без разницы с какой.
ps. Тут кстати тоже Murmur упоминается:
http://habrahabr.ru/post/117360/

vdemidov

13-05-2013 20:49

manager   ~0011384

>Впрочем по большому счёту играться без разницы с какой.
Именно

vdemidov

20-05-2013 11:05

manager   ~0011408

Я понимаю, что это уже наглость, но не мог бы ты сделать и простенький паскалевский юнит, что бы можно было эту dll пользовать в делфе?

zed

21-05-2013 05:19

manager   ~0011410

А в чём сложность написать прототипы для 3-х функций? Тут работы максимум на 10 минут...

vdemidov

21-05-2013 06:08

manager   ~0011411

Да собственно никакой сложности разве что вопрос с типом вызова. Как я понимаю там cdecl. Просто у меня в последнее время и 10 минут нету :(

zed

21-05-2013 06:21

manager   ~0011412

>Как я понимаю там cdecl
Да.

>Просто у меня в последнее время и 10 минут нету
Вот когда время появится, тогда и поговорим. Оно и dll небыло смысла сейчас собирать, если ты не собираешься пока ничего кодить. Чисто лежит под сукном до лучших времён...

zed

28-05-2013 05:12

manager   ~0011422

https://bitbucket.org/sas_team/cityhash

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
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 41xxxx => 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
08-08-2025 13:25 zed Category Рефакторинг => Рефакторинг / Refactoring