Submit Search
Upload
Python vs ruby
•
4 likes
•
2,516 views
O
osamunmun
Follow
PythonとRubyの演算速度を比較してみた。Pythonの方が速いかなと思ってたけど、Rubyの方が概ね早い結果。計測方法がおかしいなど異論をお待ちしてますm(_ _)m
Read less
Read more
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 23
Recommended
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
Masahiro Tanaka
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
洋史 東平
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
洋史 東平
Prosym2012
Prosym2012
MITSUNARI Shigeo
HPC Phys-20201203
HPC Phys-20201203
MITSUNARI Shigeo
Recommended
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
Masahiro Tanaka
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
洋史 東平
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
洋史 東平
Prosym2012
Prosym2012
MITSUNARI Shigeo
HPC Phys-20201203
HPC Phys-20201203
MITSUNARI Shigeo
emcjp Item 42
emcjp Item 42
MITSUNARI Shigeo
llvm入門
llvm入門
MITSUNARI Shigeo
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
MITSUNARI Shigeo
20140306 ibisml
20140306 ibisml
Yoshinobu Kawahara
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
CuPy解説
CuPy解説
Ryosuke Okuta
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
Altanative macro
Altanative macro
Motohiro KOSAKI
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Yasumasa Suenaga
python vs ruby
python vs ruby
Michael Karpov
Ruby vs python
Ruby vs python
Igor Leroy
More Related Content
What's hot
emcjp Item 42
emcjp Item 42
MITSUNARI Shigeo
llvm入門
llvm入門
MITSUNARI Shigeo
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
MITSUNARI Shigeo
20140306 ibisml
20140306 ibisml
Yoshinobu Kawahara
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
optimal Ate pairing
optimal Ate pairing
MITSUNARI Shigeo
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
CuPy解説
CuPy解説
Ryosuke Okuta
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
Altanative macro
Altanative macro
Motohiro KOSAKI
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Yasumasa Suenaga
What's hot
(20)
emcjp Item 42
emcjp Item 42
llvm入門
llvm入門
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
20140306 ibisml
20140306 ibisml
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
optimal Ate pairing
optimal Ate pairing
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
mrubyのfiberを試してみた
mrubyのfiberを試してみた
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
CuPy解説
CuPy解説
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
Wavelet matrix implementation
Wavelet matrix implementation
フラグを愛でる
フラグを愛でる
Altanative macro
Altanative macro
LLVM最適化のこつ
LLVM最適化のこつ
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Viewers also liked
python vs ruby
python vs ruby
Michael Karpov
Ruby vs python
Ruby vs python
Igor Leroy
Flask vs. Django
Flask vs. Django
Rachel Sanders
Django vs Flask
Django vs Flask
Rachel Sanders
Framework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs Chalice
STEP Computer Academy (Zaporozhye)
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Solution4Future
Web backends development using Python
Web backends development using Python
Ayun Park
Viewers also liked
(7)
python vs ruby
python vs ruby
Ruby vs python
Ruby vs python
Flask vs. Django
Flask vs. Django
Django vs Flask
Django vs Flask
Framework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs Chalice
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Web backends development using Python
Web backends development using Python
Similar to Python vs ruby
Rの高速化
Rの高速化
弘毅 露崎
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)
tj-yoshino
メタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
110828 tokyo scipy1_hido_dist
110828 tokyo scipy1_hido_dist
Shohei Hido
NumPy闇入門
NumPy闇入門
Ryosuke Okuta
SSDとTokyoTyrantやMySQLの性能検証
SSDとTokyoTyrantやMySQLの性能検証
勲 國府田
ffi for rubyists
ffi for rubyists
nanki
Similar to Python vs ruby
(8)
Rの高速化
Rの高速化
phperを魅了するrubyの魅力(1)
phperを魅了するrubyの魅力(1)
メタメタプログラミングRuby
メタメタプログラミングRuby
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
110828 tokyo scipy1_hido_dist
110828 tokyo scipy1_hido_dist
NumPy闇入門
NumPy闇入門
SSDとTokyoTyrantやMySQLの性能検証
SSDとTokyoTyrantやMySQLの性能検証
ffi for rubyists
ffi for rubyists
Python vs ruby
1.
Python vs Ruby 演算コストの比較
@osamunmun
2.
環境 ・Mac OS X
Version10.7.4 ・CPU 2.2GHz Intel Core i7 ・Memory 4GB ・Python 2.7.1 vs ruby 1.9.2p290 ・実行測定結果は5回実行したうち、最大値、 最 小値を取り除いた3つの値の平均を利用 ・空ループの実行結果を測定し除いた
3.
1, i =
i2 (intの代入) Python Ruby 実行結果:0.055(s) 実行結果:0.0095(s) 1回あたり:0.055(μs) 1回あたり:0.0095(μs) ・Rubyの方がPythonより一桁速いことに違和感があるが、計測方法を確認しても特に間違いは無さそうなの でバックエンドで何か異なる処理をしているのかもしれない。 。
4.
2, i =
i2+i3 (intの加算) Python Ruby 実行結果:0.11(s) 実行結果:0.015(s) 1回あたり:0.11(μs) 1回あたり:0.015(μs)
5.
3,i=i2/i3 (intの除算)
Python Ruby 実行結果:0.12(s) 実行結果:0.028(s) 1回あたり:0.12(μs) 1回あたり:0.028(μs) ・Pythonは乗算とほぼ同じコストに対して、Rubyは2倍近いコストになっている。
6.
4,i=i2%i3 (intの剰余)
Python Ruby 実行結果:0.13(s) 実行結果:0.028(s) 1回あたり:0.13(μs) 1回あたり:0.028(μs)
7.
5,f=f2 (floatの代入)
Python Ruby 実行結果:0.055(s) 実行結果:0.012(s) 1回あたり:0.055(μs) 1回あたり:0.012(μs) ・Pythonはintの場合と同じコストであったが、Rubyは3割増となっている。
8.
6,f=f2+f3 (floatの加算)
Python Ruby 実行結果:0.11(s) 実行結果:0.059(s) 1回あたり:0.11(μs) 1回あたり:0.059(μs) ・Pythonはintの場合と同じコストであったが、Rubyは4倍となっている。
9.
7,f=f2/f3 (floatの除算)
Python Ruby 実行結果:0.10(s) 実行結果:0.058(s) 1回あたり:0.10(μs) 1回あたり:0.058(μs)
10.
8,f=f2%f3 (floatの剰余)
Python Ruby 実行結果:0.12(s) 実行結果:0.059(s) 1回あたり:0.12(μs) 1回あたり:0.059(μs)
11.
9,intからfloatへの変換
Python Ruby 実行結果:0.26(s) 実行結果:0.082(s) 1回あたり:0.26(μs) 1回あたり:0.082(μs)
12.
10,floatからintへの変換
Python Ruby 実行結果:0.28(s) 実行結果:0.042(s) 1回あたり:0.28(μs) 1回あたり:0.042(μs) ・Rubyはintからfloatの半分のコストとなった。
13.
11,listへの挿入(n=1,000)
Python Ruby 実行結果:0.00062(s) 実行結果:0.00026(s) 1回あたり:0.62(μs) 1回あたり:0.26(μs)
14.
12,listへの挿入(n=10,000)
Python Ruby 実行結果:0.037(s) 実行結果:0.018(s) 1回あたり:3.7(μs) 1回あたり:1.8(μs)
15.
13,listへの挿入(n=100,000)
Python Ruby 実行結果:3.57(s) 実行結果:2.18(s) 1回あたり:35.7(μs) 1回あたり:21.8(μs)
16.
14,listの参照(n=1,000)
Python Ruby 実行結果:0.0004(s) 実行結果:0.00005(s) 1回あたり:0.4(μs) 1回あたり:0.05(μs) ・Rubyの性能がPythonを1桁上回った。速すぎる気がする。
17.
15,listの参照(n=10,000)
Python Ruby 実行結果:0.018(s) 実行結果:0.0005(s) 1回あたり:1.8(μs) 1回あたり:0.05(μs) ・Rubyの1回あたりの性能がn=1000と比べて劣化していない。
18.
16,listの参照(n=100,000)
Python Ruby 実行結果:2.2(s) 実行結果:0.0044(s) 1回あたり:22.2(μs) 1回あたり:0.044(μs) ・Rubyの1回あたりの性能がn=1000と比べて劣化していない。Pythonは指数関数的にコストが 増加しており、listのアルゴリズムが異なることが伺える。
19.
17,Hashの生成(n=10,000)
Python Ruby 実行結果:0.0014(s) 実行結果:0.0033(s) 1回あたり:0.14(μs) 1回あたり:0.33(μs) ・初めてPythonがRubyの性能を上回った。
20.
18,Hashの参照(n=10,000)
Python Ruby 実行結果:0.0008(s) 実行結果:0.0011(s) 1回あたり:0.08(μs) 1回あたり:0.11(μs) ・PythonがRubyの性能を上回り、作成と比べた参照の性能値はどちらも同程度だった。
21.
19,正規表現のmatch
Python Ruby 実行結果:0.002(s) 実行結果:0.0005(s) 1回あたり:2.0(μs) 1回あたり:0.5(μs) ・RubyがPythonより一桁速い。
22.
20, 条件判定
Python Ruby 数字=>実行結果:0.07(s) 数字=>実行結果:0.009(s) 1回あたり:0.07(μs) 1回あたり:0.009(μs) 文字=>実行結果:0.13(s) 文字=>実行結果:0.032(s) 1回あたり:0.13(μs) 1回あたり:0.032(μs) ・RubyがPythonより一桁速い。
23.
21, ソート
Python Ruby n=1000=>実行結果:0.025(s) n=1000=>実行結果:0.0067(s) 1回あたり:25(μs) 1回あたり:6.7(μs) n=10000=>実行結果:2.44(s) n=10000=>実行結果:0.59(s) 1回あたり:244(μs) 1回あたり:59(μs) n=100000=>実行結果:282(s) n=100000=>実行結果:58(s) 1回あたり:2820(μs) 1回あたり:580(μs) ・RubyがPythonより一桁速い。