Forum Discussion

tobenschain's avatar
Occasional Contributor
7 years ago

Where's the bottleneck?

The slowness of our program may be due to network bogging down or it may be due to inefficient coding (which I can address). How can I tell?


2 Replies

  • AlexKaras's avatar
    Champion Level 3



    Without any additional details been provided, I would suggest generic approach:

    -- Use Performance profiler with Routine level areas (or Simple profiler) and locate routine(s) that perform poorly;

    -- Then setup Line level area for the Performance profiler for top 5 or top 10 most slow routines and profile them on the line level. Check what line(s) of code perform poorly. If they correspond to the network communication functions, then the problem is either with the network or backend server applications. Otherwise, most probably, the code of your application requires review;

    -- You may consider to either monitor backend server(s) performance using counters or/and use specialized tools on the server (e.g. Query Analyzer for the database server) and try to correlate their data with the data provided by AQtime. If, for example, you will see long query execution reported by the database tool at the moment when network-related activity is performed by your application as per AQtime, then, most probably, the problem is not with the network, but with some heavy/non-optimized data query.


    P.S. video (from the page) might help as well...

    • tobenschain's avatar
      Occasional Contributor

      I'm thinking that if execution is fast for one user then the problem is with the server and not my program. By the way I am using DOS era 3GL file access.