"sasha" ...
>
> >     А почему .net провайдер так жутко тормозит при работе с fbembed ?
> > Я выполнил твой тест, цифры примерно следующие (по памяти)
> > а) своя реализация протокола : варчары < 2 сек, блобы > 20 сек
> > б) через fbembed : варчары ~ 14 сек, блобы ~ 14 сек
> >
> >     откуда такие тормоза во втором варианте ? Кто тормозит - interop или
> > marshalling или ... ?
>
> Я сравнений не производил, но знаю что вызовы унаследованного кода
> производятся через PInvoke, который не считается особо быстрым. Я
> когда-то просматривал коды провайдера (ещё версии 1.7) и насколько я
> помню Карлос в своей реализации просто переписал код клиента c C++ на
> C#,  а для встраиваемой версии он просто импортирует клиентские функции.
> А потом разруливает фоажком которую вызывать. Но я гарантии не дам что
> это 100% так :-)

    Возьми какой-нить профайлер для c# и измерь работу через fbembed

> >     Тот же тест с IBX показал, что fbembed работает с блобами _быстрее_,
> >  чем с варчарами.
>
> Так значит это Карлос там что-то не то сделал? Почему ж в собственном
> протоколе такая огромная разница?

    И Карлос "молодец" и протокол не оптимален для таких задач

    Вот цифры, полученные из программы на Дельфи (IBX) на твоих данных
разными способами доступа (varchar\blob) на fb 2.0

xnet        1492\4056
wnet        1322\6589
inet         1392\16574
embed       902\861

отсюда видно, что сам сервер с блобами работает даже чуть быстрее, но
организация АПИ и накладные расходы на сетевой протокол играют не
маленькую роль.

--
Хорсун Влад


Reply via email to