¿Cómo funciona malloc en un entorno multiproceso?

1 minuto de lectura

¿Como funciona malloc en un entorno multiproceso
pitónico

¿El típico malloc (para la plataforma x86-64 y el sistema operativo Linux) bloquea ingenuamente un mutex al principio y lo libera cuando termina, o bloquea un mutex de una manera más inteligente a un nivel más fino, de modo que se reduce la contención de bloqueo. Si efectivamente lo hace de la segunda manera, ¿cómo lo hace?

  • ¿Cuál es el contexto donde has visto eso? ¿algún código citado o referencia?

    – Raulp

    22 de mayo de 2012 a las 17:04


  • suavemente: estoy preguntando, no diciendo.

    – pitónico

    22 de mayo de 2012 a las 17:05

  • Todavía estoy indeciso sobre si nedmalloc es una verdadera hazaña de ingeniería o spam de SEO… 🙂

    – R.. GitHub DEJA DE AYUDAR A ICE

    22 mayo 2012 a las 18:39

  • también tcmalloc de google que usa bloqueos en cubos del tamaño de su solicitud. Mejor rendimiento de subprocesos con menos contención, más asignación excedente.

    – el malvado otto

    22 de mayo de 2012 a las 20:09

  • @R..: Parece un poco sospechoso a primera vista, pero tiene un código fuente para que pueda compararlo usted mismo (no lo he hecho). Doug Lea también dice “Si está usando malloc en un programa concurrente, considere usar nedmalloc o ptmalloc” en los comentarios de dlmalloc.c. Así que creo que probablemente sea legítimo.

    – Adam Rosenfield

    22 de mayo de 2012 a las 21:06

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad