Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Шрифт с юникодом в OGL (20 стр)

Шрифт с юникодом в OGL (20 стр)

Страницы: 117 18 19 20 21 22 Следующая »
RPGmanУдалёнwww27 окт. 201222:23#285
Kotofey
> ЧЯДНТ?
> MinGW,
> OpenAddressingDefaultSize = 4096
Не знаю. Делаю OpenAddressingDefaultSize = 4096, получаю:
Text length: 17205 symbols
Test "Google Inc + Knuth" runs for 0.595 seconds
Test "Devil's Superhash" runs for 0.958 seconds
Test "Open addressing hashmap" runs for 0.333 seconds

М.б. забыл -O2 ?

>Test "Google Inc + Knuth" runs for 0.218 seconds
А что за система с такой быстрой памятью?
Получаются очень дешевые промахи.

DevilDevilПостоялецwww27 окт. 201222:30#286
RPGman
> Не знаю. Делаю OpenAddressingDefaultSize = 4096, получаю:

У МЕНЯ сделай 4096, клоун

а у себя оставь простым числом
и со стратегией увеличения массива, чтобы компилятор не находил остаток от деления на константу
RPGmanУдалёнwww27 окт. 201222:32#287
DevilDevil
> У МЕНЯ сделай 4096, клоун
Ты же гомик не гордый. http://www.gamedev.ru/code/forum/?id=156749&page=11#m151
"Ну а мне пожалуйста оставь 128 элементов. Я человек не гордый - мне много памяти не надо"
KotofeyПостоялецwww27 окт. 201222:37#288
RPGman
> М.б. забыл -O2 ?
>
> > est "Google Inc + Knuth" runs for 0.218 seconds

вроде всё на месте:

####### Compiler, tools and options

CC            = gcc
CXX           = g++
DEFINES       = -DUNICODE -DQT_LARGEFILE_SUPPORT
CFLAGS        = -O2 -Wall $(DEFINES)
CXXFLAGS      = -O2 -frtti -fexceptions -mthreads -Wall $(DEFINES)


> А что за система с такой быстрой памятью?
> Получаются очень дешевые промахи.
win7 x64

DevilDevilПостоялецwww27 окт. 201222:40#289
RPGman
завязывай с наркотиками
RPGmanУдалёнwww27 окт. 201222:41#290
Kotofey
> win7 x64
Не, я про железо. Код там простой, а вот память отвечает нереально быстро. Ты-ж на приложенном файле проверял, или другой текст использовал?
DevilDevilПостоялецwww27 окт. 201222:44#291
RPGman
> уйди, праативный.
я слышал, что наркоманы становятся спидозниками. слышал, что гомосексуалисты становятся спидозниками. но не думал, что это взаимосвязные вещи
KotofeyПостоялецwww27 окт. 201222:56#292
RPGman
> Не, я про железо. Код там простой, а вот память отвечает нереально быстро. Ты-ж
> на приложенном файле проверял, или другой текст использовал?

не , я уменьшил количество итераций до 1000, так что ничего быстрого)
файл тот же.

DevilDevilПостоялецwww27 окт. 201223:15#293
Короче выкладываю скорректированную версию: shitcoders_vs_google_vs_devildevil_2
На старом Athlon 1700 XP выдаёт следующий скрин:
shitcoders_vs_google_vs_devildevil_2 | Шрифт с юникодом в OGL

на новых архитектурах судя по всему расхождения должны быть другими

p.s. чёт я не особо верю в "сквозную адресацию" или как там его
DevilDevilПостоялецwww27 окт. 201223:19#294
протестируйте кто-нибудь у себя
мне интересно, какие расхождения будут на новых архитектурах
susagePПостоялецwww28 окт. 20120:10#295
написал ради прикола.. возвращает числа в диапазоне 0..519
ОСОБЕННОСТЬ если взять любые разные числа в диапазоне 0...519 то между ними не будет коллизии хэш.
const uint16 A[] = {1,491,379,92,366,482,128,328,59,314,479,218,233,304,258,75};
const uint16 B[] = {1,355,464,84,123,422,283,433,20,327,423,117,376,104,450,324};
const uint16 C[] = {1,400,53,360};
uint32 MyCheatHash(uint32 key)
{
  key = key%520;
  return (( A[key&0xF] * B[(key>>4)&0xF]  * C[(key>>8)&0x3] )%521)-1;
}
DevilDevilПостоялецwww28 окт. 20120:23#296
susageP

засунь в тест
исходники выше
не знаю как на счёт распределения - но тормоз жуткий

RPGПостоялецwww28 окт. 20120:30#297
susageP
> написал ради прикола.. возвращает числа в диапазоне 0..519
Сложновато, там функция поиска несколько тактов, длинный хэш её утяжелит. Мою не-хэш реализацию точно не обгонит.

Text length: 17205 symbols
Test "Devil's Superhash (4096)" runs for 0.874 seconds
Test "Open addressing hashmap (4096)" runs for 0.804 seconds
Test "RPG's random memory" runs for 0.704 seconds

DevilDevilПостоялецwww28 окт. 20120:34#298
RPG
> Сложновато, там функция поиска несколько тактов, длинный хэш её утяжелит. Мою
> не-хэш реализацию точно не обгонит.

кстати почему бы тебе не вписать её в тестовую утилиту ?
интересна разница по производительности
пусть и на вход будешь подавать не utf32, а utf8

DevilDevilПостоялецwww28 окт. 20120:44#299
RPG
> Text length: 17205 symbols
> Test "Devil's Superhash (4096)" runs for 0.874 seconds
> Test "Open addressing hashmap (4096)" runs for 0.804 seconds
> Test "RPG's random memory" runs for 0.704 seconds

1) замени модуль sc_hashmaps.h из этого архива: shitcoders_vs_google_vs_devildevil_2
2) "Open addressing hashmap" по твоим в частности утверждениям должен быть простым числом. Извольте
3) "RPG's random memory" - круто. в целом - результирующий тест в студию

тока под CodeBlocks пожалуйста
чтобы создать для всех равные условия. чем вы там модифицируете и компилите - я хрен знает

p.s. использует ли "Open addressing hashmap" кнута или дженкинса ?

Страницы: 117 18 19 20 21 22 Следующая »

/ Форум / Программирование игр / Общее

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр