🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Saludos de nuevo, y pregunta de ensamblador

#8678
From: NotFound
Date: Sat, 26 Oct 2002 14:04
50 lines
2726 bytes
Recurrente escribió:

> ¿De verdad no creeis que usando rutinas en ensamblador se puede mejorar la
> velocidad del código.

No necesariamente por usar ensamblador mejorará la velocidad del código.
Y normalmente antes de pensar en usar ensamblador hay que mirar si se
puede optimizar el algoritimo.

> v=array grande.
> for (i=0;i<Ngrande;i++) v[i]/=262144;
(...)
> for (i=0;i<Ngrande;i++) <codigo ASM para dividir> ;

Piensa lo siguiente: el compilador probablemente también sepa reconocer
cuando un divisor o multiplicador es una potencia de dos, y también sepa
cual es el código óptmimo para hacer la operación en una plataforma
concreta. Así que antes de pensar como lo harías en ensamblador compila
con optimiazción y salida a ensamblador para ver lo que hace.

> De  hecho, lo que estaba pensando es implementar tanto el bucle como la
> division en ASM.

Un bucle simple también es muy probable que el compilador lo genere
bastante optimizado. De nuevo, mira lo que hace.

> Si funciona, tambien estaba pensando afinarlo un poco más usando rutinas
> 3DNow (que creo que son las del AMD ¿no?). Por supuesto sé que con eso
> pierdo portabilidad, pero para eso están los #define no? :-D

También puedes probar a usar opciones del compilador para decirle que
procesador vas a utilizar y que genere código para él. Y de nuevo,
compilarlo a ensamblador y ver lo que ha hecho.

Claro que si te gusta programar en ensamblador y tienes tiempo también
puedes ponerte a escribir ensamblador sin más y comparar los resultados.
Pero no hagas la trampa de comparar con el compilador sin optimización
¿eh? ;)

Salu2
Technical Details
Message-ID: <3DBAA0D5.1DCC202D@tengo.no>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.wirehub.nl!btnet-peer!btnet!lnewspeer01.lnd.ops.eu.uu.net!emea.uu.net!cesio.mundo-r.com!not-for-mail
References: <3DB8FE6D.6050807@hotmail.com> <pan.2002.10.26.11.34.15.344534@hotmail.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,d4e0bb1ca64d9500
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-10-26 07:30:49 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.wirehub.nl!btnet-peer!btnet!lnewspeer01.lnd.ops.eu.uu.net!emea.uu.net!cesio.mundo-r.com!not-for-mail
From: NotFound <correo@tengo.no>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Saludos de nuevo, y pregunta de ensamblador
Date: Sat, 26 Oct 2002 16:04:05 +0200
Organization: Another Netscape Collabra Server User
Lines: 50
Message-ID: <3DBAA0D5.1DCC202D@tengo.no>
References: <3DB8FE6D.6050807@hotmail.com> <pan.2002.10.26.11.34.15.344534@hotmail.com>
NNTP-Posting-Host: cm65014.red.mundo-r.com
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mozilla 4.77 [es] (X11; U; Linux 2.4.4-4GB i686)
X-Accept-Language: en