Analisis Komparatif Kinerja Library WebSocket dalam Bahasa Pemrograman Go
Kata Kunci:
perbandingan, websocket, go, latensi, throughputAbstrak
Komunikasi real-time menjadi kebutuhan utama dalam pengembangan aplikasi modern yang membutuhkan interaksi cepat antara klien dan server, seperti layanan pesan instan, dashboard monitoring, dan permainan daring. Protokol WebSocket hadir sebagai solusi efisien untuk komunikasi dua arah yang mengatasi keterbatasan metode tradisional seperti HTTP polling. Dalam bahasa pemrograman Go, terdapat dua library WebSocket populer, yaitu "gorilla/websocket" dan "coder/websocket" dengan pendekatan pengelolaan memori yang berbeda. "coder/websocket" meminimalkan alokasi memori heap saat memproses pesan, sedangkan "gorilla/websocket" memerlukan alokasi heap baru untuk setiap pesan. Penelitian ini membandingkan kinerja kedua library berdasarkan latensi dan throughput melalui metode eksperimen kuantitatif. Pengujian dilakukan dengan skenario 10 hingga 100 koneksi konkuren, ukuran pesan 1 hingga 20 KB, serta koneksi persisten dan nonpersisten menggunakan WebSocket echo server dan alat uji beban K6. Analisis data dilakukan menggunakan uji normalitas Shapiro-Wilk dan uji beda Mann-Whitney U. Hasil penelitian menunjukkan bahwa "coder/websocket" lebih efisien pada skenario 10 hingga 50 koneksi konkuren dan ukuran pesan 1 hingga 20 KB, dengan latensi lebih rendah, throughput lebih tinggi, dan kinerja lebih konsisten. Namun, pada skenario 100 koneksi konkuren serta uji koneksi persisten dan nonpersisten, perbedaan kinerja antara kedua library tidak signifikan secara statistik.
Referensi
Avram, C., & Mărușteri, M., 2022. Normality Assessment, Few Paradigms and Use Cases. Revista Romana de Medicina de Laborator, 30(3), 251–260.
Coder Contributors 2024. Websocket Package - golang.org/coder/websocket - Go Packages.
Go Contributors 2024. Websocket Package - golang.org/x/net/websocket - Go Packages.
Gorilla Web Toolkit Contributors 2024. Websocket Package - github.com/gorilla/websocket - Go Packages.
Hoxmeier, J. A., & DiCesare, C. 2000. System Response Time and User Satisfaction: An Experimental Study of Browser-based Applications. AMCIS 2000 Proceedings, 347.
Imre, G., Mezei, G., & Sarosi, R. 2016. Introduction to a WebSocket benchmarking infrastructure. Zooming Innovation in Consumer Electronics International Conference (ZINC). Serbia. 2016. New Jersey: IEEE.
Loreto, S., Saint-Andre, P., Salsano, S., & Wilkins, G. 2011. Known Issues and Best Practices for The Use of Long Polling and Streaming in Bidirectional HTTP.
McKnight, P. E., & Najab, J., 2010. Mann‐Whitney U Test. The Corsini Encyclopedia of Psychology, 1.
Merrick, A., & Kulesza, T. 2024. Go Developer Survey 2024 H1 Results.
Newmarch, J., & Petty, R. 2022. Network programming with go language: Essential skills for programming, using and securing networks with open source Google Golang. California: Apress.
Ogundeyi, K. E., & Yinka-Banjo, C. 2019. Websocket in Real time application. Nigerian Journal of Technology, 38(4), 1010.
Tomasetti, M. 2021. An analysis of the performance of Websockets in various programming languages and libraries. SSRN Electronic Journal.
Uzayr, S. (2023). Golang: The ultimate guide. Florida: CRC Press.
Wang, Y., Huang, L., Liu, X., Sun, T., & Lei, K. 2018. Performance Comparison and Evaluation of WebSocket Frameworks: Netty, Undertow, Vert.x, Grizzly and Jetty. 2018 1st IEEE International Conference on Hot Information-Centric Networking (HotICN). China. 2018. New Jersey: IEEE.
Avram, C., & Mărușteri, M., 2022. Normality Assessment, Few Paradigms and Use Cases. Revista Romana de Medicina de Laborator, 30(3), 251–260.
Coder Contributors 2024. Websocket Package - golang.org/coder/websocket - Go Packages.
Go Contributors 2024. Websocket Package - golang.org/x/net/websocket - Go Packages.
Gorilla Web Toolkit Contributors 2024. Websocket Package - github.com/gorilla/websocket - Go Packages.
Hoxmeier, J. A., & DiCesare, C. 2000. System Response Time and User Satisfaction: An Experimental Study of Browser-based Applications. AMCIS 2000 Proceedings, 347.
Imre, G., Mezei, G., & Sarosi, R. 2016. Introduction to a WebSocket benchmarking infrastructure. Zooming Innovation in Consumer Electronics International Conference (ZINC). Serbia. 2016. New Jersey: IEEE.
Loreto, S., Saint-Andre, P., Salsano, S., & Wilkins, G. 2011. Known Issues and Best Practices for The Use of Long Polling and Streaming in Bidirectional HTTP.
McKnight, P. E., & Najab, J., 2010. Mann‐Whitney U Test. The Corsini Encyclopedia of Psychology, 1.
Merrick, A., & Kulesza, T. 2024. Go Developer Survey 2024 H1 Results.
Newmarch, J., & Petty, R. 2022. Network programming with go language: Essential skills for programming, using and securing networks with open source Google Golang. California: Apress.
Ogundeyi, K. E., & Yinka-Banjo, C. 2019. Websocket in Real time application. Nigerian Journal of Technology, 38(4), 1010.
Tomasetti, M. 2021. An analysis of the performance of Websockets in various programming languages and libraries. SSRN Electronic Journal.
Uzayr, S. (2023). Golang: The ultimate guide. Florida: CRC Press.
Wang, Y., Huang, L., Liu, X., Sun, T., & Lei, K. 2018. Performance Comparison and Evaluation of WebSocket Frameworks: Netty, Undertow, Vert.x, Grizzly and Jetty. 2018 1st IEEE International Conference on Hot Information-Centric Networking (HotICN). China. 2018. New Jersey: IEEE.
Unduhan
Diterbitkan
Cara Mengutip
Terbitan
Bagian
Lisensi
Hak Cipta (c) 2025 Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer

Artikel ini berlisensiCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.