🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #18027

Re: Programacion de hoy y de mañana.

#18027
From: NoP / Compiler
Date: Tue, 12 Oct 1999 00:00
76 lines
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-mail
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>

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