stringtranslate.com

Buffers planos

FlatBuffers es una biblioteca de software libre que implementa un formato de serialización similar a Protocol Buffers , Thrift , Apache Avro , SBE y Cap'n Proto , escrita principalmente por Wouter van Oortmerssen y de código abierto por Google . Admite la deserialización de "copia cero", de modo que el acceso a los datos serializados no requiere copiarlos primero en una parte separada de la memoria. Esto hace que el acceso a los datos en estos formatos sea mucho más rápido que a los datos en formatos que requieren un procesamiento más extenso, como JSON , CSV y, en muchos casos, Protocol Buffers. Sin embargo, en comparación con otros formatos de serialización, el manejo de FlatBuffers requiere generalmente más código y algunas operaciones no son posibles (como algunas operaciones de mutación).

El formato serializado permite el acceso aleatorio a elementos de datos específicos (por ejemplo, propiedades de cadenas individuales o enteros) sin analizar todos los datos. A diferencia de Protocol Buffers, que utiliza enteros de longitud variable , FlatBuffers codifica los enteros en su tamaño nativo, lo que favorece el rendimiento pero da lugar a representaciones codificadas más largas.

FlatBuffers se puede utilizar en software escrito en C++ , C# , C , Go , Java , JavaScript , Kotlin , Lobster, Lua , PHP , Python , Rust , Swift y TypeScript . El compilador de esquemas se ejecuta en Android , Microsoft Windows , macOS y Linux , [3] pero los juegos y otros programas también utilizan FlatBuffers para el trabajo de serialización en muchos otros sistemas operativos, incluidos iOS , Fire OS de Amazon y Windows Phone . [4]

Van Oortmerssen desarrolló originalmente FlatBuffers para el desarrollo de juegos y aplicaciones similares. [5] [1]

Aunque FlatBuffers tiene su propio lenguaje de definición de interfaz para definir los datos que se serializarán con él, también admite esquemas definidos en el formato .proto de Protocol Buffers. [6]

Usuarios

Algunos usuarios destacados de FlatBuffers:

Véase también

Referencias

  1. ^ ab Wouter van Oortmerssen (17 de junio de 2014). "FlatBuffers: una biblioteca de serialización con uso eficiente de la memoria" . Consultado el 15 de junio de 2017 .
  2. ^ "Versión 24.3.25". 26 de marzo de 2024. Consultado el 23 de abril de 2024 .
  3. ^ "GitHub — google/flatbuffers: Biblioteca de serialización con uso eficiente de la memoria". GitHub . Consultado el 10 de diciembre de 2020 .
  4. ^ "FlatBuffers para Unity". eXiin. 21 de septiembre de 2015. Consultado el 15 de junio de 2017. Probamos flatbuffers en todas las principales plataformas móviles (iOS, Android, Amazon Os, Windows Phone) en las que estamos trabajando y funciona bastante bien .
  5. ^ "Documentación de FlatBuffers" . Consultado el 21 de junio de 2017 . FlatBuffers es una biblioteca de serialización multiplataforma eficiente para C++, C#, C, Go, Java, JavaScript, PHP y Python. Fue creada originalmente en Google para el desarrollo de juegos y otras aplicaciones críticas para el rendimiento.
  6. ^ Kenton Varda (17 de junio de 2014). "Cap'n Proto, FlatBuffers y SBE" . Consultado el 15 de junio de 2017 .
  7. ^ "Cocos2d-x: Referencia del espacio de nombres Flatbuffers".
  8. ^ George Xie (31 de julio de 2015). "Mejora del rendimiento de Facebook en Android con FlatBuffers" . Consultado el 15 de junio de 2017. El tiempo de carga de las historias desde la memoria caché del disco se reduce de 35 ms a 4 ms por historia. Las asignaciones de memoria transitoria se reducen en un 75 por ciento. El tiempo de arranque en frío mejora entre un 10 y un 15 por ciento. Hemos reducido el tamaño de almacenamiento en un 15 por ciento.