SocialRed.topSocialRed.top
  • Inicio
  • Facebook
  • Instagram
  • Tik Tok
  • Twitch
  • WhatsApp
  • YouTube
  • Politica de Privacidad
  • Contacto

Subscribe to Updates

Get the latest creative news from FooBar about art, design and business.

What's Hot

La NFL y Amazon utilizan IA para crear nuevas estadísticas de fútbol

septiembre 22, 2023

El teléfono plegable Phantom V de Tecno tiene una pantalla redonda en la cubierta

septiembre 22, 2023

Creando nuevas oportunidades para personas y empresas en WhatsApp

septiembre 22, 2023
Facebook Twitter Instagram
  • Inicio
  • Politica de Privacidad
  • Contacto
Facebook Twitter Instagram Pinterest VKontakte
SocialRed.topSocialRed.top
  • Facebook

    Creando nuevas oportunidades para personas y empresas en WhatsApp

    septiembre 22, 2023

    Ahora puedes tener múltiples perfiles personales en Facebook

    septiembre 21, 2023

    Llevando la experiencia de la sobreviviente del Holocausto Inge Auerbacher a la realidad virtual

    septiembre 21, 2023

    Extendiendo la metaverificación a las empresas

    septiembre 20, 2023

    11 reglas de oro del SEO para tu negocio

    septiembre 20, 2023
  • Instagram

    Cómo promocionar con éxito su empresa en línea: 10 consejos prácticos

    agosto 19, 2023

    Cómo poner una foto de fondo detrás de los carretes en una historia de Instagram

    junio 14, 2023

    Evite estos 10 errores de hashtag de Instagram

    abril 15, 2023

    ¿Cómo hacer un fondo transparente en Instagram Story? (+ 4 trucos extra)

    marzo 24, 2023

    15 ideas únicas de feeds de Instagram para diseñadores de interiores, arquitectos y constructores

    febrero 25, 2023
  • Tik Tok

    Cómo llegar a ser influyente | fotomagazin.de

    enero 8, 2023

    ¿TikTok tiene sentido para los fotógrafos?

    enero 5, 2023

    5 consejos para mejorar los videos de TikTok

    enero 2, 2023

    TikTok: ¿quién o qué está ahí?

    diciembre 30, 2022

    TikTok Ads: nuevas oportunidades publicitarias

    diciembre 27, 2022
  • Twitch

    La NFL y Amazon utilizan IA para crear nuevas estadísticas de fútbol

    septiembre 22, 2023

    El teléfono plegable Phantom V de Tecno tiene una pantalla redonda en la cubierta

    septiembre 22, 2023

    Un robot tanque ignífugo de 90.000 dólares explorará edificios en llamas para ayudar a las personas a salvarlos.

    septiembre 22, 2023

    El próximo DALL-E podrá generar resultados en ChatGPT

    septiembre 21, 2023

    Todas las hilarantes tonterías corporativas que quizás te hayas perdido en las filtraciones de Xbox

    septiembre 20, 2023
  • WhatsApp

    Estas 4 características geniales están llegando a nosotros

    diciembre 19, 2022

    Estos son 10 favoritos en Alemania

    diciembre 18, 2022

    Cómo eliminar un recibo de lectura

    diciembre 17, 2022

    Facebook fusiona Messenger e Instagram

    diciembre 16, 2022

    Entonces te proteges de virus peligrosos y compañía.

    diciembre 16, 2022
  • YouTube

    YouTube presenta una nueva aplicación YouTube Create para editar videos, agregar efectos y más.

    septiembre 22, 2023

    YouTube Create es una aplicación móvil para edición de vídeo.

    septiembre 21, 2023

    Google se niega rotundamente a negociar con los trabajadores, provocando una huelga de YouTube Music

    septiembre 20, 2023

    ¿La marca YouTube eventualmente reemplazará a Google TV?

    septiembre 20, 2023

    En todo el mundo: YouTube cumple 15 años en la India y el creador japonés de Let’s Play es castigado

    septiembre 16, 2023
  • Twitter

    Esto es lo que ganarán los jefes de Twitter si Elon Musk los despide

    septiembre 16, 2023

    ¿Eliminar Twitter por culpa de Elon Musk? ¡Dale una oportunidad al pájaro!

    agosto 28, 2023

    El precio de Dogecoin sube después del acuerdo de Twitter: ¿Qué está haciendo Elon Musk?

    agosto 18, 2023

    Nuevo clon de Twitter con fallas en la protección de datos: pirateado el primer día

    noviembre 24, 2022

    El clon de la historia se descontinuará en solo 9 meses

    noviembre 24, 2022
  • Influencers

    Todo lo que necesita saber sobre la plataforma líder de transmisión en vivo

    septiembre 21, 2023

    13 streamers negros de Twitch que deberías seguir ahora mismo

    septiembre 18, 2023

    Las 3 principales campañas que las marcas pueden realizar en TikTok en 2023

    septiembre 17, 2023

    Los 24 principales influencers de fitness de TikTok que te pondrán en forma este verano

    septiembre 16, 2023

    Cómo ser anfitrión en Twitch

    septiembre 15, 2023
  • Blog

    Las mejores respuestas de marca a las crisis de reputación

    septiembre 21, 2023

    12 ideas + generador de publicaciones gratuito

    septiembre 12, 2023

    Respondimos todas tus preguntas de audio sobre videos de Instagram

    septiembre 6, 2023

    Los Países Bajos determinan: Pistas de esquí verdes: ¿el impacto más importante del cambio climático?

    septiembre 1, 2023

    15 estrategias asesinas de marketing visual para 2023

    agosto 29, 2023
SocialRed.topSocialRed.top
Home - Facebook
Facebook

Presentamos Immortal Objects para Python

Heidi J. KirbyPor Heidi J. Kirbyagosto 16, 2023No hay comentarios5 Min Lectura
Facebook Twitter Pinterest LinkedIn Tumblr Email
Presentamos Immortal Objects para Python
Compartir
Facebook Twitter LinkedIn Pinterest Email
  • Instagram introdujo Objetos Inmortales – PEP-683 – a Pitón. Ahora, los objetos pueden pasar por alto las verificaciones de contadores de referencia y vivir durante el tiempo de ejecución, lo que abre oportunidades emocionantes para una verdadera concurrencia.

En Meta, estamos usando Python (Django) para nuestro servidor externo de Instagram. Para manejar la concurrencia, confiamos en una arquitectura multiprocesador junto con asyncio para la concurrencia por proceso. Sin embargo, nuestra escala, tanto en términos de lógica comercial como en términos del volumen de consultas que procesamos, puede generar una mayor presión de la memoria, lo que resulta en una menor eficiencia.

Para mitigar este efecto, confiamos en la arquitectura del servidor web anterior a la bifurcación para almacenar en caché tantos objetos como sea posible y hacer que cada proceso individual los use como una estructura de solo lectura a través de la memoria compartida. Si bien esto ayuda mucho, tras una inspección más cercana, vimos que el uso de la memoria propia de nuestros procesos creció con el tiempo, mientras que nuestra memoria compartida disminuyó.

Después de analizar el montón de Python, descubrimos que, si bien la mayoría de nuestros objetos de Python eran esencialmente inmutables y existían durante el tiempo de ejecución, finalmente se modificaron mediante el conteo de referencias y las operaciones de recolección de elementos no utilizados (GC) que modifican los objetos. metadatos en cada ciclo de recolección de basura y lectura, lo que desencadena Copiar en escrito en el proceso del servidor.

El efecto de copiar en escritura es aumentar la memoria privada y disminuir la memoria compartida del proceso principal.

Artículo Recomendado:
Hige agrega verificación de identidad de video para combatir el fraude de cuentas y la pesca

Tabla de Contenidos

  • Objetos inmortales para Python
  • Cómo Immortal Objects impactó Instagram
  • Prueba Immortal Objects hoy

Objetos inmortales para Python

Este problema de cambiar el estado de los objetos compartidos es el núcleo de cómo funciona el tiempo de ejecución de Python. Dado que se basa en el conteo de referencias y la detección de ciclos, el tiempo de ejecución requiere un cambio en la estructura de memoria subyacente del objeto, que es una de las razones por las que el lenguaje requiere un bloqueo de intérprete global (GIL).

Para solucionar este problema, presentamos Objetos inmortales – PEP-683. Esto crea un objeto inmortal (un objeto para el cual el estado del objeto subyacente nunca cambiará) al marcar un valor especial en el campo de conteo de referencia del objeto. Esto permite que el tiempo de ejecución sepa cuándo puede y cuándo no puede cambiar los campos de recuento de referencias y el encabezado del GC.

1692150557 803 Presentamos Immortal Objects para PythonComparación de objetos estándar con objetos inmortales. Con los objetos estándar, el usuario puede asegurarse de no cambiar su tipo y/o sus datos. Immortality agrega una garantía adicional de que el tiempo de ejecución no cambiará el recuento de referencias o el encabezado GC si está presente, lo que garantiza que el objeto sea completamente inmutable.

Si bien implementar y lanzar esto en Instagram fue un proceso relativamente simple debido a nuestro entorno relativamente aislado, llevar esto a la comunidad fue un proceso largo y difícil. Gran parte de esto se debió implementación de la soluciónque tuvo que lidiar con una serie de problemas, como la compatibilidad con versiones anteriores, la compatibilidad de la plataforma y la degradación del rendimiento.

En primer lugar, la implementación debía garantizar que, incluso después de cambiar la implementación del recuento de referencias, las aplicaciones no fallarían si algunos objetos recibían repentinamente valores de recuento de referencias diferentes.

En segundo lugar, cambia la representación de la memoria principal del objeto de Python y cómo incrementa el recuento de referencias. Tenía que funcionar en todas las plataformas diferentes (Unix, Windows, Mac), compiladores (GCC, Clang y MSVC), arquitecturas (32 bits y 64 bits) y tipos de hardware (little endian y big endian).

Finalmente, la implementación base se basa en la adición de controles explícitos en las rutinas de incremento y decremento del conteo de referencias, que son las dos rutas de código más populares en toda la ejecución del tiempo de ejecución. Esto inevitablemente significó una disminución en el rendimiento del servicio. Afortunadamente, mediante un uso juicioso de la asignación de registros, pudimos reducir la regresión a solo ~2 % por sistema, lo que hace que la regresión sea razonable por los beneficios que brinda.

Cómo Immortal Objects impactó Instagram

Para Instagram, nuestro objetivo inicial era mejorar la memoria y el uso de la CPU de nuestras solicitudes al reducir la cantidad de copias en la publicación. Con la ayuda de objetos inmortales, pudimos reducir significativamente la memoria privada al aumentar el uso de la memoria compartida.

1692150557 847 Presentamos Immortal Objects para PythonAumentar el uso de memoria compartida con objetos inmortales nos permite reducir significativamente la memoria privada. Reducir el número de copias al grabar.

Artículo Recomendado:
Análisis detallado del tráfico de red con Millisampler

Sin embargo, las implicaciones de estos cambios van mucho más allá de Instagram y afectan la evolución de Python como lenguaje. Hasta ahora, una de las limitaciones de Python ha sido que no puede garantizar que los objetos del montón sean realmente inmutables. Tanto el recolector de elementos no utilizados como el motor de recuento de referencias tenían acceso sin restricciones a estos dos campos.

Agregar objetos inmortales a Python proporciona verdaderas garantías de inmutabilidad por primera vez. Esto ayuda a los objetos a eludir los contadores de referencia y las verificaciones de recolección de elementos no utilizados. Esto significa que ahora podemos compartir objetos inmortales entre subprocesos sin necesidad de que GIL proporcione seguridad para subprocesos.

Este es un bloque de construcción importante para el tiempo de ejecución de Python de múltiples núcleos. Hay dos oraciones que usan objetos inmortales de diferentes maneras para lograr esto:

  • PEP-684: GIL por intérprete
  • PEP-703: Hacer que el bloqueo del intérprete global sea opcional en CPython

Prueba Immortal Objects hoy

Invitamos a la comunidad a pensar en cómo pueden usar la inmortalidad en sus aplicaciones, así como a considerar las propuestas existentes para anticipar cómo mejorar sus aplicaciones para un entorno multinúcleo. En Meta, estamos entusiasmados con la dirección que está tomando el lenguaje y estamos listos para continuar contribuyendo desde afuera a medida que continuamos experimentando y haciendo crecer Instagram.

Immortal Objects para Presentamos Python
Compartir. Facebook Twitter Pinterest LinkedIn Tumblr Email
Heidi J. Kirby
Heidi J. Kirby

Publicaciones Relacionadas

La NFL y Amazon utilizan IA para crear nuevas estadísticas de fútbol

septiembre 22, 2023

Creando nuevas oportunidades para personas y empresas en WhatsApp

septiembre 22, 2023

Un robot tanque ignífugo de 90.000 dólares explorará edificios en llamas para ayudar a las personas a salvarlos.

septiembre 22, 2023

YouTube presenta una nueva aplicación YouTube Create para editar videos, agregar efectos y más.

septiembre 22, 2023
Añade un comentario

Deja una Respuesta Cancelar Respuesta

Publicaciones Recientes

Así funciona la única agencia de YouTube certificada en Alemania

diciembre 3, 2022

Meta Connect 2022: Meta Quest Pro, más realidad virtual social y una mirada al futuro

octubre 12, 2022

Así es como maximizas tu alcance y me gusta.

noviembre 2, 2022

Facebook quiere proteger mejor a los periodistas

diciembre 23, 2022
Recomendamos

YouTube está trabajando con la industria de la música para adaptarse a la IA generativa

Por Heidi J. Kirby

Meta aprueba un anuncio lleno de odio en Facebook que llama a la violencia en Europa

Por Paul K. Cantwell

Mañana Apple puede presentar nuevos MacBook Pro de 14 y 16 pulgadas

Por Paul K. Cantwell

Navegación privada en el trabajo: ¿qué significa?

Por Yauci Gamiz
SocialRed.top
Facebook Twitter Instagram Pinterest Vimeo YouTube
  • Inicio
  • Politica de Privacidad
  • Contacto
© 2023 Social Red | Todos los derechos reservados

Type above and press Enter to search. Press Esc to cancel.