Article View: es.comp.os.linux.programacion
Article #18027Re: Programacion de hoy y de mañana.
From: NoP / Compiler
Date: Tue, 12 Oct 1999 00:00
Date: Tue, 12 Oct 1999 00:00
76 lines
3789 bytes
3789 bytes
FeliX wrote:
>
> NoP / Compiler <compiler@iname.com>
> > el teorema de 90%-10% lo describe todo y es la tecnica
> > seguida por todo el mundo actualmente: ese es el "termino
> > medio" que nombras.
> >
>
> � que dice este teorema ?
pues que el 90% del tiempo de ejecuci�n de un programa recae
en apenas el 10% del codigo. Esto se comprueba y se aplica muy
facilmente: se programa todo en C, se ejecuta el programa bajo
un PROFILER (un programa que muestra el porcentaje de tiempos
que tarda en ejecutarse cada parte del programa o funci�n)...
de esto se suelen sacar un par de conclusiones: normalmente
hay una parte central y principal del codigo que se ejecuta
mas veces que las demas: por ejemplo, si haces un programa que
dibuje puntos en pantalla (en pseudocodigo):
#include <todoloquehagafalta.h>
void main()
{
InicializaCosas();
IniciaModoGrafico();
while(!ESCAPE)
{
x = random() ...
y = random() ...
color = random() ...
PonPuntito(x,y,color);
}
}
como veras, el 90% (en este caso sera casi el 99%) del tiempo
de ejecuci�n se pasar� ejecutando la funci�n PonPuntito()...
�de que OO sirve escribir todo el programa en ensamblador si
con escribir todo en C y SOLO LA FUNCION PONPUNTITO en ASM
vale?
Esto lo llevaron al extremo los se�ores de ID: cuando hicieron
el DOOM y DOOM2 fue escrito totalmente en C excepto 3 rutinas:
la funci�n de polling del joystick, la funci�n que dibuja
l�neas verticales texturadas y la funci�n que dibuja l�neas
horizontales texturadas. Total: si miras los fuentes del
DOOM2, esas 3 funciones representan unas 400 lineas en ASM
(menos del 1% del c�digo) y sin embargo son llamadas casi
10.000 veces por segundo... con eso ademas de m�xima velocidad,
los se�ores de ID consiguieron un codigo C puro y para portarlo
a Linux, por ejemplo, solo tuvieron que cambiar un par de
cosillas (entre ellas esas 3 funciones en ASM).
si te pasas por grupos como rec.games.programmer o similares,
veras como la gente siempre hace referencia al "90-10% stuff" :)
Y es cierto: uno debe hacer el programa en C, pasarle un buen
profiler (como el VTune de Intel) y reescribir las partes cr�ticas
(90%) en ASM. Y con eso, has gastado infinitamente menos tiempo
que escribirlo todo en ASM y obtienes aprox la misma velocidad.
salu2!!!!
--
Guru Meditation: Cuenta telef�nica excesiva.
------------------------------------------------------------ __ ---
| NoP / Compiler - compiler@iname.com | /oo\ |
|--------------------------------------------------------| (\/) |
| POWERED BY - Linux RedHat 6.0 - Reg. User #74.821 | / __ \ |
| NoP en IrcHispano | |\ /| |
| http://www.ctv.es/USERS/sromero |_OO __ OO_|
| http://linux-es.uio.no/Faq |
-------------------------------------------------------------------
Technical Details
Message-ID:
<3803AD38.A7F431AE@iname.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<37F906B8.DE8DD3FD@interactivebureau.com> <slrn7vic35.rmu.aherrer@portatil.es> <19991007.12302500@mis.configured.host> <37FE6650.A146F73@hotmail.com> <37FE4533.3BA729D3@interactivebureau.com> <3800A058.1286B178@iname.com> <7tvajj$7m8$1@diana.bcn.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,7aa1f8a9ccc414a1 X-Google-Attributes: gidf86c8,public From: NoP / Compiler <compiler@iname.com> Subject: Re: Programacion de hoy y de mañana. Date: 1999/10/12 Message-ID: <3803AD38.A7F431AE@iname.com> X-Deja-AN: 535986457 Content-Transfer-Encoding: 8bit References: <37F906B8.DE8DD3FD@interactivebureau.com> <slrn7vic35.rmu.aherrer@portatil.es> <19991007.12302500@mis.configured.host> <37FE6650.A146F73@hotmail.com> <37FE4533.3BA729D3@interactivebureau.com> <3800A058.1286B178@iname.com> <7tvajj$7m8$1@diana.bcn.ttd.net> X-Accept-Language: en Content-Type: text/plain; charset=iso-8859-1 Organization: Compiler Software Mime-Version: 1.0 Newsgroups: es.comp.os.linux.programacion