Has anyone else developed a codebook app with an extensive menu system? An app I am working on has 161 classes in amenus (popups, pads and bars) and the load time is simply unacceptable. It takes the app an average of 14 seconds to load--and that's on a PIII 500 w/128MB of RAM and a 100Mb network connection. Running on slower machines the time doubles or triples. In addition the menus system is pulling huge amounts of data over the network. For comparison, the app with the menus enabled pulls a total of approximately 25MB of data to load. Without any menus enabled it's about 3.5MB of data. YAG, CTB, Ed? Are there any optimizations that can speed this up? Unless I can come up with a major performance boost I think I'll just deep six the object oriented menu system and forego all the nice bells and whistles that come with it.
Michael G. Emmons
<a href="mailto:MichaelE@flashcreative.com">MichaelE@flashcreative.com</a>
Senior Consultant
<a href="http://www.flashcreative.com" class="white" onmouseover="style.color='#00cc00'" onmouseout="style.color='#0000ff'" title="Flash Creative Management Web Site">Flash Creative Management</a>
Author: Charles T. Blankenship
Posted: 1999-04-12 23:29:42 Link
<I><FONT COLOR="#663300">Has anyone else developed a codebook app with an extensive menu system? An app I am working on has 161 classes in amenus (popups, pads and bars) and the load time is simply unacceptable. It takes the app an average of 14 seconds to load--and that's on a PIII 500 w/128MB of RAM and a 100Mb network connection. Running on slower machines the time doubles or triples. In addition the menus system is pulling huge amounts of data over the network. For comparison, the app with the menus enabled pulls a total of approximately 25MB of data to load. Without any menus enabled it's about 3.5MB of data. YAG, CTB, Ed? Are there any optimizations that can speed this up? Unless I can come up with a major performance boost I think I'll just deep six the object oriented menu system and forego all the nice bells and whistles that come with it.
</FONT></I>
Hi Michael:
The OO Menu system has been "deep sixed" on a couple of projects that I know of ... Ed did it I know for a fact for one of his clients. I'm sure he'll chime in here quite soon and elighten you on the gotchas he ran into. From what I hear he is "really" busy ... I just wanted to let you know that the "deep six" approach is not necessarily a bad one in your situation and has been done before ... and it didn't look real difficult either.
Have a nice one,
CT
Flash Creative Management, Inc. (FLASH)
ctb@flashcreative.com
tomandanna@erols.com
<I><FONT COLOR="#663300I just wanted to let you know that the "deep six" approach is not necessarily a bad one in your situation and has been done before ... and it didn't look real difficult either.
Have a nice one,
CT</FONT></I>
Hi CT,
Owning an old CJ I know what a slant six is. But what is a "deep six"?
Jose
Jose Constant
Constant Software Systems
Belgium
<a href=http://www.constant.be/css target=_blank>Jose's Web Site</a>
<I><FONT COLOR="#663300">Owning an old CJ I know what a slant six is. But what is a "deep six"?</FONT></I>
Would the phrase "six feet under" be clearer?
For those who still don't get the idiom, it means to bury, or in effect, to kill something. That's what I've done with class-based menus - they are a cool idea, but dog-slow in practice. I now prefer to use the old-fashioned Menu Builder and .MPRs for my apps.
If there seems to be significant interest, I can go back and look over the mods which were necessary to accomplish this in Codebook. I believe I just added an application-level logical property, and had other parts of the code, such as toolbars, check that before assuming anything about the existence of menu objects. It could then be added as an option in the framework.
<font color="#cc0000"> ___/
/
__/
/
____/</font>
Ed Leafe
<I><FONT COLOR="#663300">If there seems to be significant interest, I can go back and look over the mods which were necessary to accomplish this in Codebook. I believe I just added an application-level logical property, and had other parts of the code, such as toolbars, check that before assuming anything about the existence of menu objects. It could then be added as an option in the framework.
</FONT></I>
Ed,
I know I have always hated the menu classes. I personally would love to see a new class that just uses .MPR based menus... The class could run the menu, then be a wrapper around some commands you might use. It might also contain a Container class to keep track of multiple menus. This should also allow for the use of GenMenuX.
BOb
<I><FONT COLOR="#663300"><I><FONT COLOR="#663300">Owning an old CJ I know what a slant six is. But what is a "deep six"?</FONT></I>
Would the phrase "six feet under" be clearer?
For those who still don't get the idiom, it means to bury, or in effect, to kill something. That's what I've done with class-based menus - they are a cool idea, but dog-slow in practice. I now prefer to use the old-fashioned Menu Builder and .MPRs for my apps.
If there seems to be significant interest, I can go back and look over the mods which were necessary to accomplish this in Codebook. I believe I just added an application-level logical property, and had other parts of the code, such as toolbars, check that before assuming anything about the existence of menu objects. It could then be added as an option in the framework.
</FONT></I>
Much clearer, thank you. Well, if MPR's are the way, let's go that way, but after the years I got used to the menu classes, and found the idea excellent... but slow. Simply sorry there seems to be no way to speed things up in an OOP fashion.
Jose
Jose Constant
Constant Software Systems
Belgium
<a href=http://www.constant.be/css target=_blank>Jose's Web Site</a>
<I><FONT COLOR="#663300"><I><FONT COLOR="#663300"><I><FONT COLOR="#663300">Owning an old CJ I know what a slant six is. But what is a "deep six"?</FONT></I>
Would the phrase "six feet under" be clearer?
For those who still don't get the idiom, it means to bury, or in effect, to kill something. That's what I've done with class-based menus - they are a cool idea, but dog-slow in practice. I now prefer to use the old-fashioned Menu Builder and .MPRs for my apps.
If there seems to be significant interest, I can go back and look over the mods which were necessary to accomplish this in Codebook. I believe I just added an application-level logical property, and had other parts of the code, such as toolbars, check that before assuming anything about the existence of menu objects. It could then be added as an option in the framework.
</FONT></I>
Much clearer, thank you. Well, if MPR's are the way, let's go that way, but after the years I got used to the menu classes, and found the idea excellent... but slow. Simply sorry there seems to be no way to speed things up in an OOP fashion.
Jose</FONT></I>
The menus fine if you don't have an extensive menu system. Even in an app with lots of menus the performance hit only comes when the app loads. If your app load time is acceptable then by all means, keep the OO menus. As for the app I'm working on, loading the menus is so slow that I have a seperate progress bar just to show the progress of the menus loading ;>.
Michael G. Emmons
<a href="mailto:MichaelE@flashcreative.com">MichaelE@flashcreative.com</a>
Senior Consultant
<a href="http://www.flashcreative.com" class="white" onmouseover="style.color='#00cc00'" onmouseout="style.color='#0000ff'" title="Flash Creative Management Web Site">Flash Creative Management</a>