I would also suggest that all compiler and linker warning messages be eliminated as much as possible because that's typically where memory leaks and bad address pointers originate. If you'd rather, you can supply two applications - the normal one with all debug code ignored at compile time and one where all the debug code is compiled in thereby avoiding the small performance hit debug switch checking naturally entails. Over time, as you write more and more debug code that you bury inside the app, that code will make support much That debug code sends you the results with whatever traces you care to implement. Performance is usually enhanced at both load and run time, especially at run time.ĭebugging an issue becomes easier because you can leave debug code in the production app and use a run time switch to activate it ON THE USERS MACHINE IN THE USERS ENVIRONMENT. Memory management becomes cleaner and is required less often because all the subs are loaded into their permanent addresses once. If that subroutine is already statically linked, no thrashing and no O/S intervention. The O/S is going to look for the whole library, not just the tiny subroutine you need at the moment. With a static app, you avoid the O/S thrashing looking for libraries. Low level file control and memory management are about as bullet proof as one can expect in any O/S, not just Linux, and that's about all a static app will require from the O/S. The less you need from the O/S because a known and tested version of a routine is already inside your app means that supporting older operating systems is inherently better with a statically linked app. Nothing is going to give you more control over an operating environment than a statically linked application. Trying to support some antique operating system is, in my opinion, detrimental in the long run as it wastes too many resources trying to satisfy a sliver of a market, but that's your call. I believe diet pills and fuel additives are usually sold using those types of claims. Equally obvious is that the most control you're going to get is to eliminate as much middleware and random uncontrollable O/S interaction as possible.īy middleware, I'm referring to anything that purports to reduce your support headaches and improve performance all without too much intervention on your part. It's obvious that you started this discussion because you want more control over where and how your app is executed.
0 Comments
Leave a Reply. |