GitHub user StevenCurran added a comment to the discussion: How does the zero copy works ?
hey @chaokunyang Sorry to bring this thread up again, but felt its applicable instead of creating a new thread. In your example for zero copy, could you elaborate a bit on what is happening here? https://fury.apache.org/docs/guide/java_object_graph_guide#zero-copy-serialization What are the BufferObjects used for, and what about the MemoryBuffers list used a couple of lines later? I am just trying to get an idea of the flow of data here, and where it is done off heap at each line. Could a comment on the lines after the objects are created in lst help? ` public static void main(String[] args) { //3 objects allocated that we want to serialize off heap List<Object> list = Arrays.asList("str", new byte[1000], new int[100], new double[100]); //Off heap BufferObjects that are pre allocated, and can be reused as a serialization / deserialization memory location? Collection<BufferObject> bufferObjects = new ArrayList<>(); //Serialize the objects from list out of band (off heap) into each of the buffer objects? aka 0 allocation done and bufferObjects can be reused? This returns a byte[] though, so there is heap allocation happening? byte[] bytes = fury.serialize(list, e -> !bufferObjects.add(e)); //Then we take those objects and put them into a bytebuffer, also off heap? But return this list? Confused as to why List<MemoryBuffer> buffers = bufferObjects.stream() .map(BufferObject::toBuffer).collect(Collectors.toList()); //Move these back on heap when using the deserialize, by using the pre allocated buffers? System.out.println(fury.deserialize(bytes, buffers)); } }` I have tried to put in comments as to what I believe, but perhaps it is not so clear to me what is happening here. Any guidance would be geatly appreciated. Many thanks! GitHub link: https://github.com/apache/fury/discussions/1377#discussioncomment-10254568 ---- This is an automatically sent email for commits@fury.apache.org. To unsubscribe, please send an email to: commits-unsubscr...@fury.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org For additional commands, e-mail: commits-h...@fury.apache.org