Jelaskan Keuntungan dan kerugian dari Global interpreter lock

Penggunaan GIL dalam bahasa pemrograman secara efektif membatasi pemanfaatan paralelisasi komputasi dalam satu sesi penerjemahan yang memanfaatkan beberapa utas/multi-utas. Jika sebuah program sepenuhnya terdiri atas kode yang ditulis dalam bahasa penerjemahan dan tidak melakukan pemanggilan fungsi ataupun prosedur di luar program penerjemah dalam waktu yang lama, akan sangat kecil kemungkinan peningkatan unjuk kerja yang bisa diraih dalam mekanisme seperti ini. Dan pula, disebabkan mekanisme sinyalisasi switching eksekusi yang berbasis jumlah p-code, performa eksekusi akan menurun secara drastis apabila dijalankan pada mesin yang memanfaatkan multi-prosesor ataupun multi-core, lebih rendah bila dibandingkan unjuk kerje eksekusi pada mesin berbasis single prosesor/single-core.

Beberapa alasan pemanfaatan kunci ini adalah:

Peningkatan unjuk kerja untuk eksekusi aplikasi yang hanya memanfaatkan satu utas (single thread) karena tidak memerlukan mekanisme penguncian GIL secara terpisah.

Mudah diintegrasikan dengan bahasa lain, serta pustaka-pustaka yang umumnya belum dirancang untuk memanfaatkan utas

Mudah dalam pengimplementasian (Menulis program penerjemah yang memanfaatkan GIL jauh lebih sederhana dibandingkan program yang tidak memanfaatkan GIL, ataupun memanfaatkan penguncian tersistematis)

Untuk mekanisme sistem yang memanfaatkan multi-utas, sangat disarankan untuk melakukan pemanggilan eksternal dengan cara membuat modul-modul yang bersifat kritis dalam bahasa aras bawah seperti C, Bahasa perakit, atau lainnya. Hal ini disebabkan pemanggilan aras bawah memiliki mekanisme untuk melepaskan kunci GIL tersebut sehingga penerjemah bisa memanfaatkannya untuk mengeksekusi task yang lain.

Pada rilis-rilis terbaru, metode yang lebih baik dalam implementasi switching eksekusi telah diperbaiki, tidak lagi menggunakan jumlah p-code, melainkan berbasis waktu (micro-timer) sehingga memungkinkan eksekusi dalam mesin berbasis multi-prosesor secara lebih baik, meski dalam hal ini tidak dimaksukan untuk menghilangkan keberadaan GIL tersebut sama sekali.