wesm opened a new pull request, #13753:
URL: https://github.com/apache/arrow/pull/13753

   This is something that I've hacked on a little bit while on airplanes and in 
idle moments for my own curiosity and just cleaned up to turn into a PR. This 
PR changes `arrow::compute::InputType` to only store `const DataType*` instead 
of `shared_ptr<DataType>`, which means that we don't have to copy the smart 
pointers for every kernel and function that's registered. Amazingly, this trims 
the size of libarrow.so by about 1% (~300KB) because of not having a bunch of 
inlined shared_ptr code. 
   
   This change does have consequences -- developers need to be careful about 
creating function signatures with data types that may have temporary storage 
duration (all of the APIs like `arrow::int64()` return static instances, and I 
changed `arrow::duration` and some other type factories to return static 
instances, too). But I think the benefits outweigh the costs. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to