Hilo para Elegir distro Linux y librarse de Win10

Toctocquienes

Madmaxista
Desde
10 Jun 2008
Mensajes
10.878
Reputación
19.148
Sí tiene lógica, la versión de 64 bits siempre será más rápida, ya que el procesador tiene más registros y el compilador puede optimizar mejor.
¿Puedes elaborar esto?

Especialmente quiero saber lo que entiendes por "registros" porque el procesador tiene una cantidad de memoria caché que es fija porque es hardware, y que no depende del sistema operativo en absoluto.

No digo que no vaya a ser más rápida en una máquina con suficiente memoria pero en una de 2GB...
 

Vanish

Madmaxista
Desde
17 Jul 2008
Mensajes
3.225
Reputación
4.846
¿Puedes elaborar esto?

Especialmente quiero saber lo que entiendes por "registros" porque el procesador tiene una cantidad de memoria caché que es fija porque es hardware, y que no depende del sistema operativo en absoluto.

No digo que no vaya a ser más rápida en una máquina con suficiente memoria pero en una de 2GB...
Aparte de la Caché, que es una memoria interna que agiliza las lecturas de memoria de la CPU, los procesadores tienen otras unidades de memoria, como los registros.

Registros los hay de muchos tipos y para muchos usos, pero hazte a la idea de que un programa quiere hacer la cuenta A x B. A bajo nivel, eso podría traducirlo el compilador en que se carga el valor de A en el registro 1, el valor de B en el registro 2 y se le dice a la CPU que multiplique registro 1 x registro 2.

Cuanto mas ancho el registro mejor. Si el registro es de 64, el compilador puede hacer la multiplicación del ejemplo tanto si los números A y B son de 64 como de 32 bits en una sola operación. Si el registro es de 32 bits, solo se pueden hacer en una operación si A y B tienen 32 bits, y si tienen mas bits el compilador se tienen que currar la forma de hacerlo con operaciones adicionales.

Creo que es todo lo que he podido hacerme entender simplificándolo todo lo que he podido. Para mas info (y seguramente una explicación mas clara y rigurosa), google y wikipedia y ve tirando de las referencias.
 
Última edición:

Turbamulta

Madmaxista
Desde
17 Oct 2013
Mensajes
4.021
Reputación
13.582
Como dicen más arriba tiene sentido para utilizar programas que utilicen cálculo con grandes números siempre que los datos que se emplean durante el cálculo quepan en memoria claro.

Recuerdo que por ejemplo en un simple AMD 64 mononúcleo la diferencia por ejemplo entre codificar MP3 con el lame compilado en 32 o 64 bits era muy significativa, en 64 bits practicamente lo hacía en el 60% de tiempo. Y funcionaba muy bien en Linux con 1GB de RAM alla por 2007, claro que si le metes un escritorio actual encima pues...
 

Toctocquienes

Madmaxista
Desde
10 Jun 2008
Mensajes
10.878
Reputación
19.148
Aparte de la Caché, que es una memoria interna que agiliza las lecturas de memoria de la CPU, los procesadores tienen otras unidades de memoria, como los registros.

Registros los hay de muchos tipos y para muchos usos, pero hazte a la idea de que un programa quiere hacer la cuenta A x B. A bajo nivel, eso podría traducirlo el compilador en que se carga el valor de A en el registro 1, el valor de B en el registro 2 y se le dice a la CPU que multiplique registro 1 x registro 2.

Cuanto mas ancho el registro mejor. Si el registro es de 64, el compilador puede hacer la multiplicación del ejemplo tanto si los números A y B son de 64 como de 32 bits en una sola operación. Si el registro es de 32 bits, solo se pueden hacer en una operación si A y B tienen 32 bits, y si tienen mas bits el compilador se tienen que currar la forma de hacerlo con operaciones adicionales.

Creo que es todo lo que he podido hacerme entender simplificándolo todo lo que he podido. Para mas info (y seguramente una explicación mas clara y rigurosa), google y wikipedia y ve tirando de las referencias.
No no, si yo sé lo que es pero no tengo nada claro que el compañero lo sepa porque el tamaño de registros, cachés etc no depende en absoluto del sistema operativo. Un procesador de 64 bits tiene registros de 64 bits de ancho tenga el SO que tenga.

En la práctica la mayor diferencia está en la cantidad de memoria que puede direccionar. Hay muy poca diferencia en rendimiento en cualquier otro caso salvo que esté muy, muy optimizado, lo cual no ocurre con software general.

Si se trata de una máquina para uso general sin necesidades específicas, no va a ver casi ninguna diferencia.

Edito: bueno sí que va a ver diferencia. El SO le va a comer más espacio en memoria y eso va a disminuir el rendimiento general si sólo tiene 2GB.
 
Última edición:

Vanish

Madmaxista
Desde
17 Jul 2008
Mensajes
3.225
Reputación
4.846
No no, si yo sé lo que es pero no tengo nada claro que el compañero lo sepa porque el tamaño de registros, cachés etc no depende en absoluto del sistema operativo. Un procesador de 64 bits tiene registros de 64 bits de ancho tenga el SO que tenga.

En la práctica la mayor diferencia está en la cantidad de memoria que puede direccionar. Hay muy poca diferencia en rendimiento en cualquier otro caso salvo que esté muy, muy optimizado, lo cual no ocurre con software general.

Si se trata de una máquina para uso general sin necesidades específicas, no va a ver casi ninguna diferencia.
Un sistema operativo compilado para arquitecturas de 32 bits, si tuviera que hacer la multiplicación del ejemplo con números 64 bits, la haría con mas operaciones. Ese sistema operativo en una arquitectura de 64 bits correría igual (porque "son compatibles") simplemente dejando sin usar "la mitad" de sus registros.

Si compilas el mismo sistema operativo para arquitectura de 64 bits, el compilador puede hacer que la multiplicación del ejemplo en 1 operación solo.

El hardware es el mismo, pero si el sistema operativo está compilado para usar solo "la mitad" del ancho de los registros, estás dejando parada "la mitad" de tu hardware y necesitaras operaciones adicionales.

Si lo compilas para que use todos sus recursos, el compilador podrá encontrar maneras mas rápidas y con menos instrucciones de hacer las cosas.

Y si, las diferencias de rendimiento son sensibles en muchísimo software, no estoy para nada de acuerdo en que en "software general" no se nota. Y mas en un sistema operativo, que no es una cosa de programa que se hace en dos tardes y que no tiene nada de dónde optimizar.

PD: Lo había leido muy rápido y se me había pasado. La limitación de la memoria RAM en sistemas de 32 bits que se puede direccionar se soluciona instalando un Kernel con soporte PAE, que permite hacer uso de 64 gigas de RAM con un linux de 32 bits.
 
Última edición:

Toctocquienes

Madmaxista
Desde
10 Jun 2008
Mensajes
10.878
Reputación
19.148
No son muchos los programas que usan esa clase de números.
De todas formas siempre estoy dispuesto a aprender algo nuevo, y te agradeceré que nos pongas ejemplos del mundo real de programas de uso general que tengan versión de 32 y de 64 bit, cuya versión de 64 vaya notoriamente más rápido.
No sé, un navegador web, un procesador de textos, etc.

A ver esos ejemplos del mundo real, nada de comparativas sintéticas.




Te explico dónde está el truco: la inmensa mayoría del software general se compila para 32 bits. Incluso las versiones de 64 bits de muchos programas no están diseñadas para exprimir el procesador. Te tienes que ir a juegos o software específico o de ciertos usos profesionales para encontrar una compilación pensada para sacar partido a los 64 bits.

Afirmar que con caracter general un SO de 64 bits va a ir más rápido es erróneo porque además de tener un SO de 64 bits, necesitas que las aplicaciones estén compiladas para 64bits y que estén optimizadas para esa arquitectura.
 
Última edición:

Naguissa

Madmaxista
Desde
6 Ago 2010
Mensajes
4.775
Reputación
4.887
No son muchos los programas que usan esa clase de números.
De todas formas siempre estoy dispuesto a aprender algo nuevo, y te agradeceré que nos pongas ejemplos del mundo real de programas de uso general que tengan versión de 32 y de 64 bit, cuya versión de 64 vaya notoriamente más rápido.
No sé, un navegador web, un procesador de textos, etc.

A ver esos ejemplos del mundo real, nada de comparativas sintéticas.




Te explico dónde está el truco: la inmensa mayoría del software general se compila para 32 bits. Incluso las versiones de 64 bits de muchos programas no están diseñadas para exprimir el procesador. Te tienes que ir a juegos o software específico o de ciertos usos profesionales para encontrar una compilación pensada para sacar partido a los 64 bits.

Afirmar que con caracter general un SO de 64 bits va a ir más rápido es erróneo porque además de tener un SO de 64 bits, necesitas que las aplicaciones estén compiladas para 64bits y que estén optimizadas para esa arquitectura.
En general de acuerdo contigo.

Una anécdota graciosa fue fer como mi Turion 1.6 ULV se merendaba a un Core2Duo de mas de 2 GHz en una app Java. Pero es que era una app matemática, y mi OS era un Gentoo amd64 ultra optimizado VS Ubuntu x86. Fue escandaloso, en el x86 podías leer los resultados en el terminal y analizarlos, en el mío era imposible leerlos de lo rápido que salían (se los comía el scroll en 1 o 2 segundos).


Es de los pocos casos que pasa.

Enviado desde mi Jolla mediante Tapatalk
 

Toctocquienes

Madmaxista
Desde
10 Jun 2008
Mensajes
10.878
Reputación
19.148
En general de acuerdo contigo.

Una anécdota graciosa fue fer como mi Turion 1.6 ULV se merendaba a un Core2Duo de mas de 2 GHz en una app Java. Pero es que era una app matemática, y mi OS era un Gentoo amd64 ultra optimizado VS Ubuntu x86. Fue escandaloso, en el x86 podías leer los resultados en el terminal y analizarlos, en el mío era imposible leerlos de lo rápido que salían (se los comía el scroll en 1 o 2 segundos).


Es de los pocos casos que pasa.

Enviado desde mi Jolla mediante Tapatalk
El tuyo es un ejemplo paradigmático, buena paliza ja ja.