Code Monkey home page Code Monkey logo

Comments (3)

 avatar commented on May 7, 2024

The problem with this is alignment, i.e. if you write arrays of bytes or shorts, you'll need to pre-align using the number of elements, to ensure it will match with the length field. I could simply shift the array at the end, but that could be costly. One thing we can do is to remove the need to specify the number of elements for all types with alignment >=4

from flatbuffers.

lbensaad avatar lbensaad commented on May 7, 2024

What the problem with alignment and why it is needed? Could you please explain it to me with example if possible. I saw it in the code but did not have time to fully analyse its role and i did not understand why it is there.

from flatbuffers.

 avatar commented on May 7, 2024

Imagine you write an unknown amount of shorts, and that number ends up being 3. That is 6 bytes of data. Now you want to write the length field, which is an int, and needs to be 4-byte aligned. You must now write 2 padding bytes between the array data and the length field, causing the array data to not be adjacent to the length field. startVector takes care of that by aligning all the data before you write the array data.

from flatbuffers.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.