Skip to content

Instantly share code, notes, and snippets.

@zhangsoledad
Last active December 29, 2018 10:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhangsoledad/969dfaff85fa6efd77388c840701ea12 to your computer and use it in GitHub Desktop.
Save zhangsoledad/969dfaff85fa6efd77388c840701ea12 to your computer and use it in GitHub Desktop.
numext vs ethtypes

Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz

numext https://github.com/yangby-cryptape/rust-numext @ f7279be

ethereum-types https://crates.io/crates/ethereum-types 0.4

Serialize

bench_ser_numext_h256   time:   [62.599 ns 63.126 ns 63.872 ns]                                  
bench_ser_ethereum_types_h256                                                                            
                        time:   [98.682 ns 100.03 ns 102.49 ns]


bench_de_numext_h256    time:   [89.473 ns 89.601 ns 89.776 ns]                                 
bench_de_ethereum_types_h256                                                                            
                        time:   [169.34 ns 169.44 ns 169.54 ns]


bench_ser_numext_u256   time:   [117.03 ns 117.11 ns 117.21 ns]                                  
bench_ser_ethereum_types_u256                                                                            
                        time:   [115.36 ns 116.91 ns 118.82 ns]


bench_de_numext_u256    time:   [130.69 ns 130.87 ns 131.06 ns]                                 
bench_de_ethereum_types_u256                                                                            
                        time:   [173.54 ns 173.77 ns 174.00 ns]

Calculation

gcd/nfuint              time:   [2.7163 us 2.7262 us 2.7388 us]                        
gcd/num_bigint          time:   [5.6694 us 5.7115 us 5.7679 us]                            


add/nfuint              time:   [2.8701 ns 2.9171 ns 2.9944 ns]                        
add/etypes              time:   [4.9338 ns 4.9700 ns 5.0208 ns]                        


sub/nfuint              time:   [2.5503 ns 2.5789 ns 2.6138 ns]                        
sub/etypes              time:   [4.9219 ns 4.9562 ns 4.9958 ns]                        


mul/nfuint              time:   [15.097 ns 15.174 ns 15.251 ns]                        
mul/etypes              time:   [14.596 ns 14.693 ns 14.818 ns]                        


div/nfuint              time:   [23.800 ns 23.976 ns 24.212 ns]                        
div/etypes              time:   [123.31 ns 124.08 ns 124.89 ns]                       


rem/nfuint              time:   [24.795 ns 24.836 ns 24.885 ns]                        
rem/etypes              time:   [79.981 ns 80.046 ns 80.131 ns]                       


bitand/nfuint           time:   [3.6116 ns 3.6135 ns 3.6154 ns]                           
bitand/etypes           time:   [4.9031 ns 4.9118 ns 4.9239 ns]                           


bitor/nfuint            time:   [3.6250 ns 3.6296 ns 3.6348 ns]                          
bitor/etypes            time:   [4.8924 ns 4.8972 ns 4.9021 ns]                          


bitxor/nfuint           time:   [3.6152 ns 3.6186 ns 3.6226 ns]                           
bitxor/etypes           time:   [4.9735 ns 4.9947 ns 5.0156 ns]                           


not/nfuint              time:   [2.2404 ns 2.2549 ns 2.2698 ns]                        
not/etypes              time:   [3.6962 ns 3.7189 ns 3.7439 ns]                        

ushl0/nfuint            time:   [2.3718 ns 2.4011 ns 2.4326 ns]                          
ushl0/etypes            time:   [9.4665 ns 9.5390 ns 9.6143 ns]                          


ushl7/nfuint            time:   [2.3636 ns 2.3749 ns 2.3876 ns]                          
ushl7/etypes            time:   [11.717 ns 11.779 ns 11.843 ns]                          


ishl65/nfuint           time:   [2.1883 ns 2.1965 ns 2.2061 ns]                           
ishl65/etypes           time:   [10.730 ns 10.777 ns 10.829 ns]                           


ushl511/nfuint          time:   [1.7534 ns 1.7636 ns 1.7767 ns]                            
ushl511/etypes          time:   [5.1035 ns 5.1114 ns 5.1199 ns]                            


ushr0/nfuint            time:   [2.2754 ns 2.2780 ns 2.2807 ns]                          
ushr0/etypes            time:   [9.2612 ns 9.2834 ns 9.3084 ns]                          


ushr7/nfuint            time:   [2.3142 ns 2.3236 ns 2.3361 ns]                          
ushr7/etypes            time:   [10.938 ns 10.962 ns 10.988 ns]                          


ishr65/nfuint           time:   [2.1742 ns 2.1771 ns 2.1802 ns]                           
ishr65/etypes           time:   [10.188 ns 10.199 ns 10.212 ns]                           


ushr511/nfuint          time:   [1.7325 ns 1.7346 ns 1.7369 ns]                            
ushr511/etypes          time:   [5.0710 ns 5.0775 ns 5.0847 ns]                            
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment