Re: Fastcode Library Design
- From: "Dennis" <marianndkc@xxxxxxxxxxxxxxx>
- Date: Tue, 11 Oct 2005 10:39:48 +0200
Hi
Each library type has its own unique set of strengths and weaknesses. Help
me enumerate them.
Direct Calling:
Pro
Simple
The smallest possible exe
No additional RAM usage.
No extra indirection
The fastest possible.
Cons
Compiled for one target only
The unit can contain the same function multiple times if it is a winner on
multiple targets. This makes the unit bigger as necessary which takes up HD
space on the developer machine. Maintanence is simpler if only one copy of a
function is included.
Conditional Compilation:
Pro
The smallest possible exe
No additional RAM usage.
No extra indirection
The fastest possible.
Cons
Compiled for one target only
CPU ID based:
Pro
The fastest function for the given target is automatically used.
Cons
All functions are compiled into the exe -> a fat exe
Adds one extra layer of indirection.
Not as simple as Direct calling or conditional compilation.
Depends on the CPUID unit
Patching
Pro
All calls to RTL functions from within the RTL is replaced without the need
of the RTL to be recompiled.
The fastest function for the given target is automatically used.
Cons
A fat exe.
Adds one extra layer of indirection.
One function is 4 kB big in RAM always ????
All functions are loaded into RAM, even if not used.
Not all people feel comfortable with some "hacking" they do not understand.
A complex solution
Depends on the CPUID unit
Best regards
Dennis
.
- Follow-Ups:
- Re: Fastcode Library Design
- From: Charalabos Michael
- Re: Fastcode Library Design
- From: Dennis
- Re: Fastcode Library Design
- From: Dennis
- Re: Fastcode Library Design
- From: Dennis
- Re: Fastcode Library Design
- References:
- Fastcode Library Design
- From: Dennis
- Re: Fastcode Library Design
- From: Dennis
- Fastcode Library Design
- Prev by Date: ScaleDown
- Next by Date: Re: ScaleDown
- Previous by thread: Re: Fastcode Library Design
- Next by thread: Re: Fastcode Library Design
- Index(es):
Relevant Pages
|