To Port or Not To Port... That Is The Question
-
Firstly, sorry for the subject ;P We have written a generic data-access layer which we use to execute stored procedures on a MS SQL Server database and return various data-types depending on the method called (recordset, array, integer etc.). This data-access layer is a COM+ object (because we need to call it from ASP) written with Visual Basic. We are currently looking at doing a re-write to support some new functionality (XML, multiple output parameters and the like), what I would like to know is would there be a significant performance benefit in porting the code to Visual C++ as an ATL COM+ object? I have made a number of ATL objects before and I am comfortable writing C++ but if the performance benefit isn't going to be measurable then I might as well leave the code in it's current Visual Basic form... Any input would be greatly appreciated. William D. Bartholomew
-
Firstly, sorry for the subject ;P We have written a generic data-access layer which we use to execute stored procedures on a MS SQL Server database and return various data-types depending on the method called (recordset, array, integer etc.). This data-access layer is a COM+ object (because we need to call it from ASP) written with Visual Basic. We are currently looking at doing a re-write to support some new functionality (XML, multiple output parameters and the like), what I would like to know is would there be a significant performance benefit in porting the code to Visual C++ as an ATL COM+ object? I have made a number of ATL objects before and I am comfortable writing C++ but if the performance benefit isn't going to be measurable then I might as well leave the code in it's current Visual Basic form... Any input would be greatly appreciated. William D. Bartholomew
Last time I checked, IDispatch calling (e.g. VB) was about 10.000 times slower (thats four orders of magnitude) than using the vftable. Depending on your app it will help, but in your case I think the SQL server is the bottleneck. Of course that's no reason to not make it faster. :-) /Mike