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

Простая реализация RTTI (run time type information) (комментарии) (4 стр)

Страницы: 1 2 3 4
#45
0:49, 12 мар 2010

А во тест

i5 750 @ 2.67 Ghz
Speed compare: 200000000 dynamic cast
-----------------------------------------------
dynamic_cast 27.65M casts per second (r:006E15C0)
reflection::cast 200.20M casts per second (r:006E15C0)

reflection::cast faster that dynamic_cast x7.24
#46
15:52, 29 апр 2010
Debian Linux 5.00 CPU: Intel E6800 @ 3.00 Ghz
g++ (Debian 4.3.2-1.1) 4.3.2
Speed compare: 200000000 dynamic cast
-----------------------------------------------
dynamic_cast 44.54M casts per second (r:0x804f428)
reflection::cast 256.41M casts per second (r:0x804f428)

reflection::cast faster that dynamic_cast x5.76
Прошло более 1 года
#47
15:55, 20 янв 2012

Извините за некропостинг, но может у кого-то остался архив с исходниками данной либы? Сайт автора не работает, скачать по ссылке выше по треду невозможно.

#48
21:54, 20 янв 2012

да, надо бы заплатить за домен :)

http://dl.dropbox.com/u/4736419/reflectionLibrary_v4.rar

#49
0:34, 21 янв 2012

Спасибо )

#50
16:32, 22 янв 2012

Похоже тут в библиотеке ошибка небольшая с ассёртом, оповещающем о возникновении коллизии.

assert(strcmpFast(c_str(), size(), other.c_str(), other.size()) == 0 && "Need update hash function, collisions must be resolved !");

strcmpFast возвращает true, если строки равны, поэтому == 0 нужно убрать. Ты, наверное, когда стандартный strcmp() поменял на strcmpFast(), забыл условие переделать )

#51
19:14, 22 янв 2012

Faveris
> стандартный strcmp() поменял на strcmpFast(), забыл условие переделать )

ага :) все так, надо ==0 убрать

#52
22:34, 22 янв 2012

А текст документа-то простым смертным так и не доступен. :(

#53
23:23, 22 янв 2012

Мой вариант:
hpp http://www.everfall.com/paste/id.php?p8eff666jchv
cpp http://www.everfall.com/paste/id.php?vipcny8p6qr4
пример

/*
===========================================================================

Enforcer-Engine Source Code
Copyright (C) 2011-2012 Enforcer-Engine Team. 

===========================================================================
*/

#include "efEngine.h"

int main(int, char**) {
  efObject* object = new efObject();
  efReader* reader = new efReader();

  if(object->IsA(efObject::Type)) printf("ok...\n");
  else printf("fail...\n");

  if(!object->IsA(efReader::Type)) printf("ok...\n");
  else printf("fail...\n");

  if(reader->IsA(efReader::Type)) printf("ok...\n");
  else printf("fail...\n");

  if(!reader->IsA(efObject::Type)) printf("ok...\n");
  else printf("fail...\n");

  if(!object->IsDerived(efReader::Type)) printf("ok...\n");
  else printf("fail...\n");

  if(reader->IsDerived(efObject::Type)) printf("ok...\n");
  else printf("fail...\n");

  system("pause");

  efObject* c0 = reader->Cast<efObject>();
  efReader* c1 = object->Cast<efReader>(); // assert, bingo

  return 0;
}
#54
23:00, 23 янв 2012

С PowerPC засада какая-то (хотя чёрт - я ж в 32-битном режиме скомпилил).

MacOS X 10.5  CPU: PowerPC G5 @ 2.00 Ghz
g++ (Apple 4.2.1)  (-O2, -O3 - результаты похожие)

Speed compare: 200000000 dynamic cast
-----------------------------------------------
dynamic_cast 32.61M casts per second (r:0x1001c0)
reflection::cast 26.09M casts per second (r:0x1001c0)

reflection::cast faster that dynamic_cast x0.80

А рядом виндовс-коробка:

Win7 x64  CPU: AMD Athlon 7850+ @ 2.8 Ghz
g++ (equation.com 4.6.0)  (-O2)
Speed compare: 200000000 dynamic cast
-----------------------------------------------
dynamic_cast 20.45M casts per second (r:000000000047FDD0)
reflection::cast 101.78M casts per second (r:000000000047FDD0)

reflection::cast faster that dynamic_cast x4.98
Прошло более 11 лет
#55
8:35, 28 окт 2023

Здравствуйте. Прошу прощения за такое гробокопательство, но, может быть, у кого-нибудь остался архив reflectionLibrary_v4.rar? Хотел скачать, да вот только по ссылке в Dropbox уже файла нет, сайта sergeymakeev.com больше нет, в копиях на Web Archive тоже этого файла нет.

#56
10:24, 28 окт 2023

Возьми версию 3, она есть в веб архиве. Разница, судя по теме, только в хеш функции.

#57
10:37, 28 окт 2023

entryway
Да, есть версии с 1 по 3, но хотелось бы найти и 4, там не только другая хэш-функция, но и "поправил баги по мелочи, пример с DLL сделал".

Страницы: 1 2 3 4
ПрограммированиеФорумОбщее

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