[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: ABL performance bugs and technical support

Status
Not open for further replies.
F

frank.meulblok

Guest
Below are my opinions. Other people's opinions may vary. [quote user="dbeavon"] What about if I can prove that, everything else being equal, something in particular like "BIND" parameters take substantially more time on one supported OS/platform than another? [/quote] That would be worth reporting to Tech Support, but may not be a bug in OpenEdge. It may still be that the difference is tied to hardware differences or differences in OS-level functions/implementations. [quote user="dbeavon"] Or what if a method has an artificial concurrency issue that forces the ABL to wait on a resource which shouldn't be shared . Eg. community.progress.com/.../57795 [/quote] That should be treated as a bug in OpenEdge, especially if that concerns moving to the PASOE server. Because it causes provable regressions in your code, and it's the changes in architecture between OE components that introduces it. [quote user="dbeavon"] Or what about local method invocations that take 1 ms each? or 100 ms? or 1000 ms? What is the upper limit before Progress would be convinced that it is a performance bug? [/quote] Here things get trickier. But you should still be able to get the help of Technical Support to work out specific scenarios. - If calling the same method repeatedly with the same inputs gets slower over the number of iterations, that's likely a defect. (Not guaranteed, especially not if the method also leaves artifacts floating around elsewhere. Be it temp-table records, left-over handle-based objects or whatever.) - If it depends on what's being passed in/returned, that may be just because ABL passes everything by-value by default. That including temp-tables & datasets, and that's where you'll really notice that larger amounts of data passed as parameters means more time spent on deep-copying the data. If you run into that, you really want to start looking into the by-reference / bind passing. (bindind/unbinding/rebinding references should have a relatively constant cost at least). - If you have something that performs slow, and an alternative approach that outperforms it unexpectedly, then you at least have a provable bottleneck. So that can be reported to Tech Support for further investigation as well. Argumentation why the performance difference is unexpected important here. A clear example here is appending to longchars, where you can compare appending in memory to writing the result to a temp-file and copying that file into the longchar at the end of the process. You would reasonably expect the temp-file approach to be slower due to disk IO etc. In earlier OpenEdge releases, that was not the case, in current OpenEdge releases it should be because several bottlenecks got fixed.

Continue reading...
 
Status
Not open for further replies.
Top