Slowness in Deployed Runtime (OpenInsight 32-bit Specific)
At 22 AUG 2002 03:21:46PM Mike Parrish wrote:
Hello all,
I have successfully deployed my application to our fileserver (Win2K using the All Networks driver) and have noticed an incredible slowdown in processing of our Customer_Orders window.
This window has an edittable for order details of items a customer is ordering. The columns in this edittable are: PROD_ID, DESCRIPTION, UPC, SKU, QTY, COST, EXT_COST, RETAIL, EXT_RETAIL. Of these columns, only PROD_ID and QTY are actual data fields, the rest are symbolics. Aside from the EXT_xxx columns (which simply perform multivalued SUMs), all of the symbolics have XLATEs to the PRODUCTS table to read the appropriate information.
I'm wondering if all of these separate XLATEs are causing the slowdown in the deployed runtime. When the user enters a product id in the order details edittable, it takes much longer for the symbolics to be processed and for the cursor to move to the next column in the table than it does when I perform the same actions in my development copy which resides on my local hard drive. I'm fairly confident that it is because of the many reads to the fileserver to retrieve the various information that the symbolics return. I also have the ETSETCASE and the @upper_case conversion of the underlying data happening as I have described in previous posts executing on this edittable.
Since these symbolics should be used for live, in-window (in-form) processing as well as report printing, should I add to the symbolics some code that would perform a single XLATE for each line item and store that data in, say, an @USERx variable and then find the appropriate data from there as processing moves from column to column, row to row? I suspect that this would quicken the runtime processing but would appreciate some feedback before I go in and make so many changes to the Customer_Orders dictionary.
Thanks in advance,
Mike
At 22 AUG 2002 03:43PM Donald Bakke wrote:
Mike,
As a general rule you should minimize the use of symbolics/xlates especially in multi-valued implementations. The overhead, as you are discovering, can be significant. I'm certain there are ways you could improve the coding to minimize the load but it's difficult to comment without seeing actual examples.
In the past I would have said that the speed differences are definitely the result of having your development files stored locally while your runtime files are stored on the network. However, with the NT Service and the general speed of networks these days we now usually get better performance through the network. It depends on what your configuration is.
I recommend doing your development through the network anyway. That way you get an accurate feel for what your runtime users will experience.
dbakke@srpcs.com
At 22 AUG 2002 05:45PM Mike Parrish wrote:
Don,
Thanks for yet another quick and perfect response. As I wrote, I pretty much concluded that the problem was my liberal use of XLATEs and symbolics. I'll poke around at it to see if I can streamline things a bit.
As for developing off the network, I had originally planned to do exactly that but there was a concern at the time of available disk space – you know we do so much art that is stored on the server that I didn't want to infringe on valuable real estate. Again, I should have gone with my gut. Sigh.
Thanks again! You're the best!
Mike
At 22 AUG 2002 07:31PM Donald Bakke wrote:
Mike,
To conserve on disk space you could use the same application data files. OpenInsight's system files by themselves typically don't take up that much room.
dbakke@srpcs.com