Re[7]: Проект сериализации - 2 [просьба высказаться]
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 00:22
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, yxiie, Вы писали:


A>>>Перешли мне херед из папки DIA SDK

Y>>куда переслать?

A>Cкажи-ка чему у тебя равено значение поля CLSID в ключе HKEY_CLASSES_ROOT\MSDIA?

A>У меня {e60afbee-502d-46ae-858f-8272a09bd707}

{151CE278-3CCB-4161-8658-679F8BCF29ED}

A>Работает ли пример dia2dump из DIA SDK?


работает

A>Там в папке bin есть DLLка. Напусти на неё regsrv32, может просто не зарегистрирована?


зарегистрировал, теперь serialize выдает ошибку:

...:::ERROR:::...
FILE: .\serialization_metainfo_read.cpp
LINE: 14
HRESULT -2147221164


... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Kimiko Itoh — 12 Follow Me">> ...


dmitriid.comGitHubLinkedIn
Re[8]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 00:49
Оценка:
Здравствуйте, Mamut, Вы писали:

updated.

Если ничего не поможет, вот msdia71.dll (надо зарегистрировать)
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 01:02
Оценка:
Здравствуйте, Mamut, Вы писали:

И для самых стойких ещё одна версия. (Ну не сохранил я старую студию, чтоб сам всё проверить — простите )
http://www.rsdn.ru/File/2053/Serialization2.rar
http://www.rsdn.ru/File/2053/Serialization.rar это другая версия.

Короче если ни одна из них не работает на VC70 я не знаю что делать
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[9]: Проект сериализации - 2 [просьба высказаться]
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 01:12
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Mamut, Вы писали:


A>updated.


A>Если ничего не поможет, вот msdia71.dll (надо зарегистрировать)


именно он и нужен

сейчас смотрю на 597 User defined types (UDT) found и диву даюсь Три сырцовых файла общим размером в 8,93 КБ Но — используют Qt. БОльшая часть вытянулась оттуда.

Единственное, кто бы мне сказал, что такое BATTERY_REPORTING_SCALE:

User Defined Type [BATTERY_REPORTING_SCALE] of kind [struct]
{
[NO ENUM]
DATA [Granularity] of type [unsigned long (4 bytes)] of kind [field] with access [public]
DATA [Capacity] of type [unsigned long (4 bytes)] of kind [field] with access [public]
[NO FUNCTION]
[NO UDT]
}




Но — очень прикольно.

Serialization2 тоже работает на ура
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Kimiko Itoh — 04 River of Crystals">> ...


dmitriid.comGitHubLinkedIn
Re[10]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 01:19
Оценка:
Здравствуйте, Mamut, Вы писали:

M>сейчас смотрю на 597 User defined types (UDT) found и диву даюсь Три сырцовых файла общим размером в 8,93 КБ Но — используют Qt. БОльшая часть вытянулась оттуда.


Да, выдаются все используемые типы. Если что-то было в lib/obj Файлах, то это тоже выдаётся.

M>Единственное, кто бы мне сказал, что такое BATTERY_REPORTING_SCALE:




M>Serialization2 тоже работает на ура


А если разрегистрировать msdia71.dll (и удалить на вский случай) то Serialization2 опять работает? Просто не хочеться с прогой на 62Кб поставлять DLL на 200
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[11]: Проект сериализации - 2 [просьба высказаться]
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 01:26
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Mamut, Вы писали:


M>>сейчас смотрю на 597 User defined types (UDT) found и диву даюсь Три сырцовых файла общим размером в 8,93 КБ Но — используют Qt. БОльшая часть вытянулась оттуда.


A>Да, выдаются все используемые типы. Если что-то было в lib/obj Файлах, то это тоже выдаётся.


Я и не против, в принципе... Появились мысли, как ипользовать то или иное, стобы уменьшить зависимости — побочный эффект, так сказать.

M>>Serialization2 тоже работает на ура


A>А если разрегистрировать msdia71.dll (и удалить на вский случай) то Serialization2 опять работает? Просто не хочеться с прогой на 62Кб поставлять DLL на 200


Работает
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Mary Black — Mo Ghile Mar">> ...


dmitriid.comGitHubLinkedIn
Re: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 01:27
Оценка:
Здравствуйте, adontz, Вы писали:

Люди, если у всех всё заработало, пожалуйста выскажитесь на счёт скорости

[объём исходников в мегабайтах]/[скорость работы в секундах]

[количество UDT]/[скорость работы в секундах]

Утилита должна обрабатывать КУЧУ информации, если она хоть чуть-чуть тормозит, лучше об этом узнать сейчас.
Исходите из того, что время работы утилиты добавится ко времени компиляции.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[12]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 01:34
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Я и не против, в принципе... Появились мысли, как использовать то или иное, чтобы уменьшить зависимости — побочный эффект, так сказать.


Тут какое дело — использование типа не есть использование объекта этого типа. Когда я пишу что-то вроде
A * pA;
vector<A> va;

тип A использован, а объект типа A нет
M>Работает

Ну если Serialization2 у yxiie тоже заработает то на этом варианте и остановимся.
A journey of a thousand miles must begin with a single step © Lau Tsu
QA Report :)
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 01:48
Оценка:
Натравил serialize2 на папку bin Qt:

designer.exe
assistant.exe
linguist.exe
qm2ts.exe
lrelease.exe
lupdate.exe
uic.exe

qm2ts.pdb
assistant.pdb
lupdate.pdb
lrelease.pdb
linguist.pdb
uic.pdb
designer.pdb


Общий размер .pdb: 13.9 МБ
Общее кол-во их кодов: 71,8 МБ

Длительность работы serialize2: 11с первый прогон (на глазок), 6с второй прогон (по виндовым часам), но первый был реально раза в два длиннее

Величина сгенерированного файла: 2,94 МБ

Кол-во найденных типов: 2580
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Kenji Kawai — 02 Kugutsuuta ura mite chiru">> ...


dmitriid.comGitHubLinkedIn
Re[2]: Проект сериализации - 2 [просьба высказаться]
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 02:17
Оценка:
Повторюсь:

Натравил serialize2 на папку bin Qt:

qm2ts.pdb
assistant.pdb
lupdate.pdb
lrelease.pdb
linguist.pdb
uic.pdb
designer.pdb


Общий размер .pdb: 13.9 МБ
Общее кол-во их исходников: 41,8 МБ (в прошлый раз забыл учесть .obj файлы)

Длительность работы serialize2: 11с первый прогон (на глазок), 6с второй прогон (по виндовым часам), но первый был реально раза в два длиннее

Величина сгенерированного файла: 2,94 МБ

Кол-во найденных типов: 2580

//--------------------------------------------------
После чего натравил на папку src (сам qt, собссно)

Общий размер исходников: 20 MB
Количество типов: 3410
Время обработки: 6-8 секунд (два разных захода)
Величина сгенерированного файла: 3,78 MB
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Lou reed — Perfect Day (Best Version)">> ...


dmitriid.comGitHubLinkedIn
Re[3]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 09:17
Оценка:
Здравствуйте, Mamut, Вы писали:

Спасибо большое.
Думаю скорость приемлемая
Переходим к фазе №2 — написание Add-in для Visual Studio
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[13]: Проект сериализации - 2 [просьба высказаться]
От: yxiie Украина www.enkord.com
Дата: 09.01.05 09:20
Оценка:
Здравствуйте, adontz, Вы писали:

A>Ну если Serialization2 у yxiie тоже заработает то на этом варианте и остановимся.


не заработал

...:::ERROR:::...
FILE: .\serialization_metainfo_read.cpp
LINE: 17
HRESULT -2147221164


A>>>Перешли мне херед из папки DIA SDK

Y>>куда переслать?

A>Cкажи-ка чему у тебя равено значение поля CLSID в ключе HKEY_CLASSES_ROOT\MSDIA?

A>У меня {e60afbee-502d-46ae-858f-8272a09bd707}

{151CE278-3CCB-4161-8658-679F8BCF29ED}

A>Работает ли пример dia2dump из DIA SDK?


не знаю, он не откомпилен — а откомпилить не могу — ATL не установлен.

A>Там в папке bin есть DLLка. Напусти на неё regsrv32, может просто не зарегистрирована?

D:\Programs\VS.NET\Visual Studio SDKs\DIA SDK\bin>regsrv32 msdia20.dll
"regsrv32" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


наверно имелось ввиду: regsvr32? но все-равно после регистрации ничего не работает.
... << RSDN@Home 1.1.3 stable >>
Re[14]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 09:24
Оценка:
Здравствуйте, yxiie, Вы писали:

Y>D:\Programs\VS.NET\Visual Studio SDKs\DIA SDK\bin>regsrv32 msdia20.dll


Ну тогда вместо msdia20 скачай msdia71 — другого пути нет.
http://rsdn.ru/File/2053/msdia71.rar
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Проект сериализации - 2 [просьба высказаться]
От: yxiie Украина www.enkord.com
Дата: 09.01.05 09:42
Оценка:
Здравствуйте, adontz, Вы писали:

A>Люди, если у всех всё заработало, пожалуйста выскажитесь на счёт скорости

A>[объём исходников в мегабайтах]/[скорость работы в секундах]

1. 1,2 мб/~2 сек.
2. 1,12 /4-5сек

A>[количество UDT]/[скорость работы в секундах]


1. 2666/???
2. 14130/???
не понял, а здесь какое еще время нужно указывать?
первый проект — это то, на что я давал ссылку, во втором используется boost

A>Утилита должна обрабатывать КУЧУ информации, если она хоть чуть-чуть тормозит, лучше об этом узнать сейчас.

A>Исходите из того, что время работы утилиты добавится ко времени компиляции.
... << RSDN@Home 1.1.3 stable >>
Re[3]: Проект сериализации - 2 [просьба высказаться]
От: yxiie Украина www.enkord.com
Дата: 09.01.05 09:46
Оценка:
Здравствуйте, yxiie, Вы писали:

забыл указать конфигурацию:
Athlon 2500+ @ nForce2 Ultra 400 + 1GB DRR400
... << RSDN@Home 1.1.3 stable >>
Re[2]: Проект сериализации - 2 [просьба высказаться]
От: CiViLiS Россия  
Дата: 09.01.05 09:54
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, adontz, Вы писали:


A>[объём исходников в мегабайтах]/[скорость работы в секундах]

самих исходников на 2 метра + boost. pdb файлы имеют размер 12 и 2 метра. Первый проход секунд 10, последующие 3. UDT -- 5693

Проблем с последней версией вроде бы нет.

ЗЫ А могет добавить вывод времени работы и номер/билда.. проще будет
... << RSDN@Home 1.1.4 beta 3 rev. 241>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re: Проект сериализации - 2 [просьба высказаться]
От: yxiie Украина www.enkord.com
Дата: 09.01.05 10:02
Оценка:
Здравствуйте, adontz, Вы писали:

замечены странности: на разные ф-ции оно как попало пишет то полное имя начиная с кореневого namespace, то короткое имя — только имя ф-ции причем абсолютно без оснований:

User Defined Type [BladeFX::Graphics::BHierarchyNode] of kind [class]
{
[NO ENUM]
DATA [hierarchychanged] of type [bool (1 bytes)] of kind [field] with access [protected]
FUNCTION [BladeFX::Graphics::BHierarchyNode::thisclass] of kind [static] with access [public]
FUNCTION [New] of kind [static] with access [public]
FUNCTION [New] of kind [static] with access [public]
FUNCTION [New] of kind [static] with access [public]
...

User Defined Type [BladeFX::Graphics::BMaterial] of kind [class]
{
[NO ENUM]
DATA [pixelshaders] of type [std::vector<BladeFX::Graphics::BMaterial::InstancedPixelShader,std::allocator<BladeFX::Graphics::BMaterial::InstancedPixelShader> > (16 bytes)] of kind [field] with access [protected]
FUNCTION [BladeFX::Graphics::BMaterial::thisclass] of kind [static] with access [public]
FUNCTION [BladeFX::Graphics::BMaterial::New] of kind [static] with access [public]
FUNCTION [New] of kind [static] with access [public]
FUNCTION [BladeFX::Graphics::BMaterial::New] of kind [static] with access [public]
...


здесь очень хорошо видно на ф-ции New — она во всех классах статическая автоматически сгенерированная, но как видно отображение перегруженных вариантов может меняться абсолютно произвольно. тоже самое и с остальными методами, не только со статиками.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.01.05 14:52
Оценка:
Здравствуйте, yxiie, Вы писали:

Приведи минимальный пример исходника, где это проявляется.
Я сделал так

class A
    {
        public:
            void func(char)
                {
                }
            void func(short)
                {
                }
            void func(int)
                {
                }
            void func(float)
                {
                }
    };

И всё нормально вывелось

Parsing time: 0.0340524 seconds
PDBs total size: 52Kb
1 User defined types (UDTs) found
User Defined Type [A] of kind [class]
{
 [NO ENUM]
 [NO DATA]
 FUNCTION [func] of kind [method] with access [public]
 FUNCTION [func] of kind [method] with access [public]
 FUNCTION [func] of kind [method] with access [public]
 FUNCTION [func] of kind [method] with access [public]
 [NO UDT]
}


Обновил программу, теперь она сама выводит время и объём данных
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Проект сериализации - 2 [просьба высказаться]
От: SleepyDrago Украина  
Дата: 12.01.05 00:55
Оценка:
Здравствуйте, adontz

Я тут пробежался по докам DIA и набросал небольшой примерчик ...
В общем у меня есть предложение по поводу скорости работы утилитки

* на первом шаге фильтруем файлы исходных текстов по пути

(там есть полпинковый способ получить енумератор исходных файлов)
и время работы будет постоянной величиной для _ЛЮБЫХ_ проектов разумного размера

таким образом сразу отсекается основной вагон типов из Boost, STL, ATL, Windows+Com ...

wbr
Re[4]: Проект сериализации - 2 [просьба высказаться]
От: adontz Грузия http://adontz.wordpress.com/
Дата: 12.01.05 01:41
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>* на первом шаге фильтруем файлы исходных текстов по пути


Это как-то бысмысленно. Может быть, что cpp-файл включает заголовочный файл, не включённый в проект, но поддерживающий данную сериализацию.
По поводу отсева информации http://www.rsdn.ru/Forum/Message.aspx?mid=978549&amp;only=1

SD>(там есть полпинковый способ получить енумератор исходных файлов)

SD> и время работы будет постоянной величиной для _ЛЮБЫХ_ проектов разумного размера

Не будет, если только PDB файл это не граф с заранее прописанными связями, в чём лично я несколько сомневаюсь. Будет время проверю скорость, он особо быстрее, чем несколько секунд всё равно не выйдет. ИМХО ради такого дела и 5-10 секунд подождать не жалко, тем более, что ничего не мешает организовать некоторое кеширование и не парсить не изменившиеся файлы, если уж всё будет действительно медленно.

SD>таким образом сразу отсекается основной вагон типов из Boost, STL, ATL, Windows+Com ...


А он и так отсекается смотри про DECLARE_SERIALIZABLE. Более того, его и нельзя не отсекать, потому что никакая умная сериализация не поймёт, что _Myfirst и _Mylast это указатели на начало и конец одного и того же блока памяти. Такие типы как в Boost/STL надо подготавливать к сериализации вручную.
Как сериализовать СОМ я пока не решил (CoMarshalInterface/CoUnmarshalInterface? больше ничего в голову не пришло)

Утилита которая есть сейчас это отладочная версия. Если она выводит информацию обо всех типах, это не значит, что в дальнейшем она буддет всю эту информацию хранить и использовать.

ЗЫ кстати идея, а что если по Си++ коду генерировать COM TypeLibrary? No more IDL, тем более, что MSVC поддерживает аттрибуты
Например объявлять это дело так (кто не в курсе, это Си++ код!)
[object, uuid("12753B9F-DEF4-49b0-9D52-A79C371F2909")]
__interface MyInterface : public IUnknown
    {
        virtual HRESULT __stdcall MyMethod([in] LONG param1, [out] BSTR * param2) = 0;
    };

Можно автоматически генерировать реализации IDispatch, QueryInterface (больше никаких COM_MAP) и проч. и проч.
Если ещё сделать редактор того, что обычно есть в rgs файле, то ATL умрёт

Чё-то я слишком уже разогнался....
A journey of a thousand miles must begin with a single step © Lau Tsu