×

Menjadikan Python lebih cepat

Menjadikan Python lebih cepat

1,671 Views

Python adalah salah satu bahasa pemrograman paling populer di kalangan developer namun karena kecepatannya yang rendah maka banyak perusahaan menulis ulang aplikasi mereka dalam bahasa lain setelah kecepatan Python menjadi hambatan bagi pengguna. Tetapi bagaimana jika ada cara untuk mempertahankan fitur-fitur mengagumkan Python dan meningkatkan kecepatannya? Solusinya pada menggunakan pypy

PyPy adalah interpreter Python yang sangat compliance yang merupakan alternatif yang layak untuk CPython 2.7, 3.6, dan 3.7. Dengan menginstal dan menjalankan aplikasi via pypy maka kalian dapat memperoleh peningkatan kecepatan yang nyata. Seberapa besar peningkatan yang akan kalian lihat bergantung pada aplikasi yang jalankan.

Python and PyPy

Spesifikasi bahasa Python digunakan dalam sejumlah implementasi seperti CPython (ditulis dalam C), Jython (ditulis dalam Java), IronPython (ditulis untuk .NET), dan PyPy (ditulis dengan Python). CPython adalah implementasi asli dari Python dan sejauh ini yang paling populer dan paling terupdate.

Namun, karena CPython adalah bahasa interpretasi high level maka CPython memiliki batasan tertentu, di situlah PyPy bisa berguna. Karena mematuhi spesifikasi bahasa Python, PyPy tidak memerlukan perubahan dalam basis kode klaian dan dapat menawarkan peningkatan kecepatan yang signifikan berkat fitur yang akan kalian lihat di bawah.

Download dan Instalasi

PyPy tersedia untuk sistem operasi linux, mac, dan windows, kalian bisa download di https://www.pypy.org/download.html kalian tenang saja walaupun menggunakan OS windows 64 bit, maka PyPy akan tetap berjalan dengan baik koq, silahkan download dengan (saya pakai versi python 3.6) dan extract lah di C:/pypy3.6-v7.3.2-win32, jangan lupa untuk set path agar pypy dapat dikenali oleh sistem.

See also  Merge File CSV di Pandas: Panduan Lengkap dan Praktis

Untuk folder site-packages masih kosong, kalian bisa copy paste saja library yang kalian ingin gunakan disitu, ntar saya jelaskan.

Mencoba Kode Python tanpa PyPy

Untuk mempermudah benchmark, saya punya kode python yang simple untuk melakukan looping sebanyak 10ribu kali, saya beri nama dengan example.py

import time

start_time = time.time()
total = 0
for i in range(1, 10000):
    for j in range(1, 10000):
        total += i + j

print(f"Hasil {total}")
end_time = time.time()
print(f"Selesai {end_time-start_time:.2f} detik")

Kita coba run

python example.py

Hasil 999800010000
Selesai 19.52 detik

Butuh waktu 19.52 detik

Mencoba Kode Python dengan PyPy

Dengan kode yang sama, kita akan coba pakai PyPy

pypy3 example.py

Hasilnya cukup cepat sekali!

Hasil 999800010000
Selesai 4.60 detik

Just-In-Time (JIT) Compiler

Sebelum membahas apa itu kompilasi JIT, mari kita mundur sejenak dan meninjau properti dari bahasa yang dikompilasi seperti C dan bahasa yang ditafsirkan seperti JavaScript.

Bahasa pemrograman yang dikompilasi lebih berkinerja tetapi lebih sulit untuk ditransfer ke arsitektur CPU dan sistem operasi yang berbeda. Bahasa pemrograman yang ditafsirkan lebih portabel, tetapi kinerjanya jauh lebih buruk daripada bahasa yang dikompilasi. Ini adalah dua spektrum yang ekstrim.

Bagaimana dengan Kompatibilitas Package yang lain

Saya mencoba aplikasi yang membutuhkan library PyPDF2, langsung saya copy pastekan di site-packages

Bisa lancar jalannnya, hanya saja ada message old version

C:\pypy3.6-v7.3.2-win32\site-packages\PySimpleGUI\PySimpleGUI.py:17457: UserWarning: You are running a VERY old version of tkinter 8.5.2
  warnings.warn('You are running a VERY old version of tkinter {}'.format(__tclversion_detailed__), UserWarning)

 

 

 

You May Have Missed