Necesito manipular números grandes en Python que caben en 64 bits. Actualmente, mi código se está ejecutando en una plataforma de 64 bits, pero existe la posibilidad pequeña pero distinta de que deba ejecutarse en una plataforma de 32 bits. En consecuencia, preferiría usar el tipo long
para representar mis números. Entiendo que hay un impacto en el rendimiento al usar long
sobre el tipo int
. ¿Qué tan malo es? Realizaré muchas divisiones y multiplicaciones sobre ellos, pero los resultados también deberían encajar en 64 bits.Repercusión en el rendimiento del uso de long vs. int en Python
Respuesta
Si va a hacer un gran número de crujidos, eche un vistazo a "numpy".
Si su programa realiza una gran cantidad de cálculos numéricos, hasta el punto de que el rendimiento importa, debe perfilarlo y hacer que la parte numérica se ejecute en código nativo. No debería preocuparse si internamente los números son "enteros" o "largos" de Python, tanto que Python 3 elimina la diferencia de tipo.
Hay varios enfoques para ello, desde usar numpy, cython, una extensión C, ejecutar tu programa usando pypy en lugar del cpython estándar, e incluso echar un vistazo a corepy: lo que no debes hacer es tener un numérico tarea intensa ejecutándose en python puro si el rendimiento es un problema allí. El evento más complicado de estos: crear una extensión C en forma de una función única que solo realice los cálculos es lo suficientemente simple para que valga la pena el aumento del rendimiento en este caso.
- 1. Repercusión en el rendimiento del uso de Workflow Foundation
- 2. C++: long long int vs. long int vs. int64_t
- 3. double double vs long int
- 4. smallint vs. int en el rendimiento
- 5. Python tipo long vs C 'long long'
- 6. Tipo de clave principal: int vs long
- 7. long int en PHP
- 8. Repercusión en el rendimiento del uso de write() en lugar de send() al escribir en un socket
- 9. ¿Cómo se maneja Python int y long?
- 10. Sql Server int vs comparación nvarchar en el rendimiento?
- 11. ¿Hay tipos más grandes que long long int en C++?
- 12. ¿GCC es compatible con long long int?
- 13. unsigned long long vs unsigned long (portabilidad punto de vista)
- 14. 'long long int' se interpreta como 'long int'. ¿Cómo puedo evitar esto?
- 15. ¿Diferencia entre long e int en C#?
- 16. Cómo convertir long a int en .net?
- 17. ¿Está `int` por defecto` signed long int` en C++?
- 18. Uso del rendimiento en C#
- 19. Uso del rendimiento y el rendimiento en Ruby
- 20. Uso sobrecargado del rendimiento rendimiento
- 21. Python: ¿Hay alguna manera de evitar que ocurra una conversión automática de int a long int?
- 22. ¿Puedo convertir long a int?
- 23. Decimal VS Int en MySQL?
- 24. equivalente en Java de unsigned long long?
- 25. impresión unsigned long long int Tipo Valor Devuelve resultados extraños
- 26. int vs const int &
- 27. ¿Cómo convierto de int a Long en Java?
- 28. Long int largo en máquinas de 32 bits
- 29. ¿Hay equivalente `int, short, long` en Perl? sistema de
- 30. ¿Cómo debo mapear long to int en hashCode()?
¿Python no maneja esto - y arbitrariamente grandes números también - automágicamente? –
puede crear un perfil de su código utilizando el módulo timeit – TJD
¿Qué versión de Python está usando? Si está usando una versión 3.x, entonces vea: PEP 0237: Esencialmente, renombrado por mucho tiempo a int. Es decir, solo hay un tipo integral incorporado, llamado int; pero se comporta principalmente como el antiguo tipo largo. – Yuushi