"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
отсюда видно, что сам сервер с блобами работает даже чуть быстрее, но
организация АПИ и накладные расходы на сетевой протокол играют не
маленькую роль.
--
Хорсун Влад