Articles of rendimiento

El rendimiento del multiprocesamiento de Python solo mejora con la raíz cuadrada del número de núcleos utilizados

Estoy intentando implementar el multiprocesamiento en Python (Windows Server 2012) y estoy teniendo problemas para lograr el grado de mejora de rendimiento que espero. En particular, para un conjunto de tareas que son casi completamente independientes, esperaría una mejora lineal con núcleos adicionales . Entiendo que, especialmente en Windows, existe una sobrecarga en la apertura […]

¿Por qué no es numpy.mean multiproceso?

He estado buscando formas de multiproceder fácilmente algunos de mis códigos de análisis simples desde que me di cuenta de que solo usaba un núcleo, a pesar de que se supone que tiene varios subprocesos. Sé que numpy está configurado para múltiples núcleos, ya que puedo ver que las pruebas que usan numpy.dot usan todos […]

cómo obtener de manera eficiente los k elementos más grandes de una lista en python

¿Cuál es la forma más eficiente, elegante y pythonica de resolver este problema? Dada una lista (o conjunto o lo que sea) de n elementos, queremos obtener los k más grandes. (Puede suponer que k<n/2 sin pérdida de generalidad, supongo) Por ejemplo, si la lista fuera: l = [9,1,6,4,2,8,3,7,5] n = 9, y digamos k […]

¿Es MATLAB más rápido que Python?

Quiero calcular los campos magnéticos de algunos conductores utilizando la ley Biot-Savart y quiero usar una matriz de 1000x1000x1000. Antes de usar MATLAB, pero ahora quiero usar Python. ¿Python es más lento que MATLAB? ¿Cómo puedo hacer Python más rápido? EDITAR: Tal vez la mejor manera sea calcular la gran matriz con C / C […]

¿Cómo se captura la excepción StopIteration de rendimiento?

Por qué en el ejemplo termina la función: def func(iterable): while True: val = next(iterable) yield val ¿Pero si quito la función de statement de rendimiento, se producirá una excepción StopIteration? EDITAR: Lo siento por engañar a los chicos. Sé qué son los generadores y cómo usarlos. Por supuesto, cuando dije que la función terminaba, […]

sabiendo de manera eficiente si la intersección de dos listas está vacía o no, en python

Supongamos que tengo dos listas, L y M. Ahora quiero saber si comparten un elemento. ¿Cuál sería la forma más rápida de preguntar (en python) si comparten un elemento? No me importa qué elementos comparten, o cuántos, solo si comparten o no. Por ejemplo, en este caso. L = [1,2,3,4,5,6] M = [8,9,10] Debería obtener […]

La manera más rápida de generar más de 1,000,000 de números aleatorios en python

Actualmente estoy escribiendo una aplicación en python que necesita generar una gran cantidad de números aleatorios, FAST. Actualmente tengo un esquema que utiliza numpy para generar todos los números en un lote gigante (alrededor de ~ 500,000 a la vez). Si bien esto parece ser más rápido que la implementación de python. Todavía lo necesito […]

¿Por qué algunas comparaciones de coma flotante <enteros son cuatro veces más lentas que otras?

Cuando se comparan flotantes con enteros, algunos pares de valores tardan mucho más en evaluarse que otros valores de una magnitud similar. Por ejemplo: >>> import timeit >>> timeit.timeit(“562949953420000.7 < 562949953421000") # run 1 million times 0.5387085462592742 Pero si el valor flotante o entero se hace más pequeño o más grande en una cierta cantidad, […]

Python problema de rendimiento de lectura lenta

Siguiendo un hilo anterior, resumí mi problema hasta convertirse en un problema, al migrar de un script de Perl a uno de Python, encontré un gran problema de rendimiento con los archivos slurping en Python. Ejecutando esto en Ubuntu Server. NB: esto no es un hilo X vs. Y que necesito saber fundamentalmente si es […]

Chrome: API para datos de rendimiento

Descripcion del problema ¿Cómo puedo acceder a los datos de la herramienta Chrome Performance desde la consola del navegador o utilizando los métodos del controlador Chrome cuando uso Selenium? En particular, estoy interesado en obtener el tiempo de carga de la página . En los diagtwigs superiores puedo ver que los últimos elementos se cargaron […]