Articles of rendimiento de la

¿La recolección de basura de Python puede ser tan lenta?

Tengo un problema con mi aplicación de python y creo que está relacionado con la recolección de basura de python, incluso si no estoy seguro … El problema es que mi aplicación tarda mucho tiempo en salir y cambiar de una función a la siguiente. En mi aplicación, manejo diccionarios muy grandes, que contienen miles […]

Llamando coroutines en asyncio.Protocol.data_received

Estoy teniendo problemas para hacer cosas asíncronas en el callback asyncio.Protocol.data_received del nuevo módulo de asyncio de Python. Considere el siguiente servidor: class MathServer(asyncio.Protocol): @asyncio.coroutine def slow_sqrt(self, x): yield from asyncio.sleep(1) return math.sqrt(x) def fast_sqrt(self, x): return math.sqrt(x) def connection_made(self, transport): self.transport = transport #@asyncio.coroutine def data_received(self, data): print(‘data received: {}’.format(data.decode())) x = json.loads(data.decode()) #res […]

Sustitución de las cadenas vacías en una cadena

Encontré accidentalmente que en python, una operación de la forma string1.join(string2) Se puede express de manera equivalente como string2.replace(”, string1)[len(string1):-len(string1)] Además, después de timeit con algunas entradas de diferentes tamaños, esta extraña forma de unirse parece ser más del doble de rápida. ¿Por qué debería ser más lento el método de unión? ¿Reemplazar la cadena […]

cómo contar de manera óptima los elementos en una lista de python

Esta es casi la misma pregunta que aquí , excepto que estoy preguntando acerca de la solución más eficiente para un resultado ordenado. Tengo una lista (alrededor de 10 enteros al azar entre 0 y 12), por ejemplo: the_list = [5, 7, 6, 5, 5, 4, 4, 7, 5, 4] Quiero crear una función que […]

Lista de Python Eficiencia de indexación

Pregunta rápida sobre el objeto construido en la lista de python. Digamos que tiene una lista con los números del 0 al 99. Está escribiendo un progtwig que toma el último elemento de la lista y lo usa para algún otro propósito. ¿Es más eficiente usar la lista [-1] que usar la lista [99]? En […]

Python: método eficaz para eliminar todas las letras que no son letras y reemplazarlos con guiones bajos

def format_title(title): ”.join(map(lambda x: x if (x.isupper() or x.islower()) else ‘_’, title.strip())) ¿Algo más rápido?

Búsqueda muy lenta de expresiones regulares.

No estoy seguro de entender completamente lo que sucede con la siguiente búsqueda de expresiones regulares: >>> import re >>> template = re.compile(“(\w+)+\.”) >>> target = “a” * 30 >>> template.search(target) search() llamada a search() tarda unos minutos en completarse, el uso de la CPU llega al 100%. El comportamiento es reproducible para las versiones […]

¿Crear funciones separadas en lugar de una grande, lento, tiempo de procesamiento?

Estoy trabajando en el entorno y la progtwigción de Google App Engine en Python. Estoy creando una función que esencialmente genera un número aleatorio / cadena de letras y luego las almacena en memcache. def generate_random_string(): # return a random 6-digit long string def check_and_store_to_memcache(): randomstring = generate_random_string() #check against memcache #if ok, then store […]

Longitud de la palabra más larga en una lista

¿Cuál es la forma más pythonica de obtener la longitud de la palabra más larga? len(max(words, key=len)) O: max(len(w) for w in words) ¿O algo mas? words es una lista de cuerdas. Me parece que tengo que hacer esto a menudo y, después de medir el tiempo con diferentes tamaños de muestra, la primera forma […]

Python – Cómo verificar la monotonicidad de la lista

¿Cuál sería una forma eficiente y pythonica de verificar la monotonicidad de la lista? Es decir, ¿tiene valores monótonamente crecientes o decrecientes? Ejemplos: [0, 1, 2, 3, 3, 4] # This is a monotonically increasing list [4.3, 4.2, 4.2, -2] # This is a monotonically decreasing list [2, 3, 1] # This is neither