kszucs opened a new pull request #7584:
URL: https://github.com/apache/arrow/pull/7584


   The original motivation for this patch was to reuse the same conversions 
path for both the scalars and arrays. 
   
   In my recent patch the scalars are converted from a single element list to a 
single element array then copied out from it.
   
   On the long term we should convert them directly, perhaps with a more 
generic converter API, until that this patch aims to reduce code complexity 
without introducing any regressions.
   
   I checked the produced binary size:
   
   ```console
   # BEFORE
   -rwxr-xr-x   1 kszucs  staff   2926832 Jun 29 23:07 
libarrow_python.100.0.0.dylib
   
   # AFTER
   -rwxr-xr-x   1 kszucs  staff   2869136 Jun 29 23:06 
libarrow_python.100.0.0.dylib
   ```
   
   ```
   convert_builtins.ConvertArrayToPyList.time_convert
   ============ ========== =========
       type       before     after     
   ------------ ---------- ---------
      int32      13.2±0ms   13.2±0m
      uint32     13.4±0ms   14.8±0m
      int64      16.4±0ms   13.7±0m
      uint64     13.0±0ms   17.4±0m
     float32     13.5±0ms   16.0±0m
     float64     16.3±0ms   14.7±0m
       bool      12.0±0ms   12.0±0m
     decimal     61.1±0ms   65.0±0m
      binary     19.1±0ms   18.2±0m
     binary10    17.9±0ms   17.4±0m
      ascii      26.0±0ms   25.9±0m
     unicode     81.4±0ms   111±0m
    int64 list   145±0ms    152±0m
      struct     229±0ms    212±0m
   ============ ========== =========
   
   convert_builtins.ConvertPyListToArray.time_convert
   ==================== ========= ========
           type          before     after
   -------------------- --------- --------
          int32          129±0ms   135±0m
          uint32         139±0ms   134±0m
          int64          132±0ms   139±0m
          uint64         135±0ms   132±0m
         float32         149±0ms   131±0m
         float64         143±0ms   141±0m
           bool          126±0ms   130±0m
         decimal         139±0ms   135±0m
          binary         145±0ms   130±0m
         binary10        136±0ms   130±0m
          ascii          145±0ms   136±0m
         unicode         148±0ms   149±0m
        int64 list       174±0ms   176±0m
          struct         164±0ms   177±0m
    struct from tuples   165±0ms   169±0m
   ==================== ========= ========
                                                      
   convert_builtins.InferPyListToArray.time_infer
   ============ ========= ========
       type      before    after   
   ------------ --------- --------
      int64      157±0ms   158±0m
     float64     155±0ms   153±0m
       bool      155±0ms   154±0m
     decimal     249±0ms   233±0m
      binary     167±0ms   162±0m
      ascii      181±0ms   154±0m
     unicode     179±0ms   171±0m
    int64 list   188±0ms   192±0m
      struct     177±0ms   181±0m
   ============ ========= ========
   ```
   
   


----------------------------------------------------------------
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.

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


Reply via email to