D
dbeavon
Guest
I'd like to start benefitting from the performance characteristics of the "-q" option - even in development. For most of our programming work, the OE/ABL stuff we create is exposed only via appservers (state-free and some state-reset). The "-q" option is also known as the quick request startup parameter. It is one of the most important parameters for better performance of the ABL code itself. ( http://knowledgebase.progress.com/articles/Article/P12659 ) It is important to start using the "-q" behavior in development in order to (1) have faster and more efficient code/test/repeat cycles, and (2) avoid additional work to find and resolve performance issues after the fact - ie after incorrectly assuming that performance issues are related to the missing "-q" option. And (3) there is nothing so troublesome (as we experience today) as running some external .r programs in a tight loop of a thousand iterations - only to realize that all the file-stat operations on the r-code files are the biggest bottleneck by a factor of 10, adding several seconds to something that should take milliseconds. This is especially true when r-code is hosted on network-attached storage. Is there a way to use "-q" in development, while still allowing myself a way to flush out my r-code as a critical step in the code/test/repeat cycle? I found this weird hack. (Flush Hack) http://knowledgebase.progress.com/articles/Article/P130577 ... Does anyone have experience with it? Can I use this reliably in a state-free agent when a client application is starting up? If this only flushes cached programs in a single agent, how do I get the other state-free agents to be flushed? IE. Can the agent that flushed itself with the "Flush Hack" also shell out to the OS and use "asbman -trimservers" in order to take care of the other agents? Along the same lines of "asbman", Another option I'm considering is just setting appserver broker properties so that the "-q" is somewhat balanced out by an "auto-flush" of r-code. Eg. I might set minSrvrInstance to zero and autoTrimTimeout to 10 seconds so that after a ten second period of inactivity, the appserver agents will be trimmed, thereby picking up new r-code when the agents are restarted. It is rare that my code/test/repeat cycles are faster than 10 seconds so I can see this being a potential solution. It seems to me that someone must have solved all these problems before. Please let me know if anyone has a good solution that allows them to benefit from the "quick request" startup parameter in development.
Continue reading...
Continue reading...