Holas,
buenas observaciones, parece que despues de tantos a~nos conviviendo en
esta lista y en la sysadmins, primera vez que coincidimos en tantas
cosas :P ...
Se me fue el detalle que una aplicacion de 64 bits ocupa mas memoria y que
los programas se agrandan, lo que provoca una merma en el desempe~no de
las aplicaciones, por esta misma razon, AMD para compensar el efecto
"64 bits" agrego 8 registros y en programamas que involucran el manejo de
enteros grandes, por ejemplo, la criptografia, el desempe~no de las
aplicaciones de 64 bits es muy superior a las de 32 bits, yo lo comprobe
empiricamente,
encriptar con una clave RSA de 1024 demora casi la mitad en modo 64 bits,
y con una clave de 4096 demora 4 veces menos en 64 bits que en modo
compatibilidad 32 bits...
saludos
On Wed, 2 Nov 2005, Horst von Brand wrote:
> [EMAIL PROTECTED] wrote:
> > On Wed, 2 Nov 2005, rodrigo wrote:
> > > El 02/11/05 05:11:54, Gustavo escribió:
>
> [...]
>
> > > eliminacion de mas de un registro por instruccion: ¿que es eso?
>
> > Se refiere que los registros para enteros son de 64 bits, por lo cual
> > los enteros grandes caen en un solo registro, en cambio en los de 32 bits
> > se necesita mas de un registro, lo que involucra mas opereciones en su
> > manipulacion.
>
> Notese si que /muy/ rara vez se usan enteros de 64 bits en codigo de 32
> bits.
>
> > Para el punto flotante no es tan cierto, ya que segun tengo entendido,
> > casi todos los procesaodores actuales de 32 bit traen registros
> > especiales de 80 bits para los numeros reales.
>
> El formato de punto flotante de intel es de 80 bits (es una version
> pichitateada del formato IEEE, /no/ es recomendable para calculos
> numericos), y es lo que maneja nativamente la FPU.
>
> > Los 8 registros que menciono una persona, solo pueden usarse cuando el
> > athlon64 esta en modo 64 bits(tiene tres modos), es decir, si instalan
> > windowxXP de 32 bits no se tendra acceso a los 8 registros adicionales,
> > ya que solo se encuentran en el microcodigo de 64 bits, tambien por lo
> > que entendi de los paper de la AMD, si se tiene un sistema oprativo de 64
> > bits, pero la aplicacion es de 32 bits, los registros tampoco son
> > usados...
>
> A ver...
>
> Igualito que el 80386 (32 bits) es un superconjunto del 8086 (16 bits) que
> es un superconjunto del 8080 (8 bits), en el sentido que tiene registros
> mas "anchos" (%eax es de 32) y contiene los anteriores (%ax es 16, %al es
> 8), tiene instrucciones adicionales (obvio, para manejar los registros de
> 32 bits; pero tambien otras realmente nuevas) y ciertas restricciones no
> corren (hay ciertos modos de direccionamiento/usos que el 8086 no permite,
> el 80386 acepta el equivalente moral), el x86_64 es un superconjunto del
> Pentium. con mas registros &c.
>
> Perfectamente puedes correr codigo de 16 bits (Win9x) en un Pentium, pero
> no sacaras provecho a la CPU. Tambien puedes correrlo en un x86_64, o
> correr codigo de 32 bits en el. Claro que un programa compilado para
> Pentium ni sabe que hay mas registros, y no los usa.
>
> > En defenitiva, si tienes mas de 4 GB y/o aplicaciones que efectuan una
> > gran cantidad de operaciones con enteros grandes y que esten compiladas
> > para 64 bits, sacaras ventaja sobre un procesador de 64 bits.
>
> Sacaras provecho siempre que tengas procesos "grandes". Notese que enteros,
> punteros, etc mas grandes significan instrucciones mas grandes, mas memoria
> usada ==> programas mas lentos. Al menos en SPARC es tan serio que se
> prefiere /no/ correr aplicaciones de 64 bits mas que donde no queda
> otra. x86_64 es mejor en este sentido, pero no es que el efecto no exista.
>
> > En todo caso, tengo entendido que salieron los PIV con EMT64,
>
> Eso solo es intel copiando la arquitectura de AMD, dado que su Itanic le
> hizo honor al nombre... por mi, me quedo con AMD.
>
> No, no tengo datos concretos que lo respalden.
>
From [EMAIL PROTECTED] Thu Nov 3 18:08:48 2005
From: [EMAIL PROTECTED] (Guillermo O. Burastero)
Date: Thu Nov 3 18:56:56 2005
Subject: Aplicar sed recursivo
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Juan Rojas escribió:
> Hola listeros como puedo aplicar una sustitucion con sed de manera
> recursiva a todos sus subdirectorios
>
> ATTE JCarlos
>
>
>
Si lo que intentas es que sed modifique los archivos de un subdirectorio
cini supongo primero create el útil comando overwite cuyo guión te
transcribo, luego ponle permiso de ejecutable ( chmod +x overwrite) y
muévelo a algún directorio que esté el paso de directorios de búsqueda
de comandos ( hacer /echo $PATH/ ) de tu Linux.
#:/bin/sh
# overwrite: copia la entrada estándar en la salida luego del EOF
opath=$PATH
PATH=/bin:/usr/bin
case $# in
0 | 1 ) echo "Uso: overwrite archivo cmd [args]" 1>&2; exit 2
esac
file=$1; shift
if test ! -f $file
then
echo $file no es un archivo
exit 1
fi
new=/tmp/overwr1.$$; old=/tmp/overwr2.$$
trap 'rm -f $new $old; exit 1' 1 2 15 # vaciar archivos
if PATH=$opath "$@" >$new # reunir la entrada
then
cp $file $old # guardar archivo original
trap '' 1 2 15 # estamos comprometidos, ignore las señales
cp $new $file
else
echo "overwrite: $1 falló, $file no cambiado" 1>&2
exit 1
fi
rm -f $new $old
# -------------------- fin de overwrite
luego has por ejemplo:
for f in 'find /directorios/con/archivos/a/modificar -name "*.cpp"
-type f '
do overwrite $f sed "s/Licencia GPL/Licencia LGPL/" $f
done
Nota: cambiar directorios y archivos del comando find o comando del sed
según necesidad particular.
Como sed es un "stream editor" y supongo que querés que los cambios
hechos queden en el mismo archivo, esta es la forma, a mi entender, más
elegante de hacerlo echando mano al comando overwrite sacado de "El
entorno de progrmación Unix" de "Brian W. Kernighan y Rob Pike", pág.
162 -ed. en español-, cap. 5 "Programación en shell". Es un lindo, breve
y útil ejemplo de buena programación en shell que vale la pena detenerse
a analizar.
El comando overwrite sirve en otros casos de filtros como por ejemplo si
querés ordenar un archivo con el filtro sort
sort sirve por ejemplo para hacer: /sort file1 -o file2/ o su
equivalente: /sort file1 > file2/, pero no pdés emplearlo en el caso de
que file2 sea el mismo que file1 ya que se destruiría el archivo antes
de empezar el sort.
Ahí podés emplear: /overwrite file1 sort file1/ con el resultado
esperado de ordenar el archivo file1. Probalo y verás.
Saludos y espero te sirva.
Guillermo.
--
Guillermo O. Burastero - Linux Counter User 84879, http://counter.li.org
Córdoba 171 - B8000IFC - Bahía Blanca - Buenos Aires - Rep. Argentina
Tel +54 (291) 454-6132 - ICQ 97148268 - email: [EMAIL PROTECTED]