LibraryTimer
 v1.1 is a program available on aminet is really interesting for our 
goal. It gives the possility to know with accuracy the usage frequency 
of any kind of Amiga library.
A
 reminder for beginners: libraries for our Amiga are made of many 
functions that have a special use. For example, the function 
R_CacheFlush of exec.library allows to undo everything in the CPU code 
and data cache. For who is interested in this article: Warp3D drivers 
have functions too and LibraryTimer allows to know how many time 
programs using Warp3D (like Quake 2 for example) call a lot of available
 functions. The use for coders is to rework the most important 
functions: the ones that are often called. Of course, statistics change 
according to launched programs and possibly according to a game 
sequence. So for the time, we launch Quake 2 and its beginning.
Its usage is very easy. You just have to launch the game:
Then go back to the Workbench with Amiga-M then click on LibraryTimer 
program. Once loaded, you have to choose a library to examinate. For our
 example, it's WD3_AvengerLEMU.library and after click on "Patch":
Go back to the game, then play it for a short time: something like two 
minutes in order to have a statistic sample. Go back to the workbench 
then click on "Update". Here is the number of "calls" displayed for 
every function (Offset) :
We 
can already see that few functions are called for the short play of 
Quake 2. Function -$24 and -$40 have been used 571 time ($23B in 
hexadecimal) and 572 time ($23C). We can observe that "Time ticks" give 
the average time taken by the executed function: I don't know now if 
these results are serious and accurate.
Another function has been used many time. It's the -$6C with 6769 calls ($1A71) :
But there is something stronger for our example! -$19E called 206 387 
times ($32633) !! It's incredible! -$1BC and -$1C2 around 108 390 times 
($1A766) and 14 307 ($37E3) for the other :
It's perfectly clear: it's -$19E that need to be optimized as much as 
possible!! it's called by W3D_GetDriverTexFmtInfo from Warp3D.library :
So 
you have understood: LibraryTimer is useful for locating used function 
and what's most important the ones that are the most requested.
(translated by johnz)
 






 
Aucun commentaire:
Enregistrer un commentaire
Laissez vos commentaires ici :