hexagon logo

CMM Automation Speed C# versus VB6

Hi,

I am currently converting an application that automated PC-DMIS in VB6 over to C#. Our application does the following:


1) Ask the user what PC-DMIS program (i.e. a PRG file) they want to run
2) Launch PC-DMIS passing in the name of the program file selected
3) Get PC-DMIS to run a series of measurements on a Scirocco machine
4) Import the measurements from PC-DMIS into the application for processing
5) Process the results (basically we compare the measurements to a baseline, then insert the deviation into a database)

What I observed is that for any program (we've tried quite a few and this seems to be consistently happening), the VB6 application takes approximately 30 seconds to perform step 4, whereas the C# application takes around 2.5 minutes.

Can anyone help with the following questions please?

1) We directly ported the code from the legacy VB6 application to C# so the new program isn't doing anything different from what the old VB6 one used to do, so why does C# take so much longer than VB6 to perform the import?
2) Is there any way to speed it up, e.g. I think I read something on a forum that VB.NET may be faster, but I can't find anything technical from Microsoft to support that so I can't really justify burning a lot of hours to convert from C# to VB.NET in case it is the same speed?

Thanks!
Parents
  • If the conversion from VB6 is being done correctly, there should be little if any performance difference between a C# or VB.NET application. At the end of the day, either language will compile into identical MSIL so long as the code is functionally the same. I would recommend taking a closer look at the methods being called in the offending part of your C# application to make sure they are functionally (rather than syntactically) identical to what is in the VB6 application, and don't conflict with built-in functionality in .NET (such as garbage collection.)

    If you are able to post some excerpts from the offending code, we may be able to offer more help.
Reply
  • If the conversion from VB6 is being done correctly, there should be little if any performance difference between a C# or VB.NET application. At the end of the day, either language will compile into identical MSIL so long as the code is functionally the same. I would recommend taking a closer look at the methods being called in the offending part of your C# application to make sure they are functionally (rather than syntactically) identical to what is in the VB6 application, and don't conflict with built-in functionality in .NET (such as garbage collection.)

    If you are able to post some excerpts from the offending code, we may be able to offer more help.
Children
No Data