HeadlinesBriefing HeadlinesBriefing.com

Object Map, Shape, dan Hidden Class Dijelaskan

Hacker News •
×

Dalam banyak bahasa dengan pengetikan dinamis seperti Python, Ruby, dan JavaScript, objek tampak seperti pemetaan dari nama atribut ke nilai. Fleksibilitas ini mendorong pengembang runtime untuk memodelkan atribut dengan hash table, yang terlihat wajar karena hash table unggul dalam memetakan nama ke nilai.

Namun, pendekatan hash table memiliki kelemahan. Hashing dan probing lambat untuk operasi yang sangat umum. Hash table juga menambah satu lapisan tidak langsung, sehingga harus melompat dari objek ke struktur penyimpanan yang terpisah. Akibatnya, akses atribut sederhana seperti a.b bisa memerlukan ratusan hingga ribuan instruksi CPU, termasuk beberapa pemuatan memori yang saling bergantung. Karena atribut sering diakses, menyimpannya secara inline di dalam objek akan jauh lebih efisien.

Untuk mengatasi hal ini, runtime menggunakan struktur yang dikenal dengan berbagai istilah, yaitu map, layout, shape, atau hidden class. Struktur ini mengoptimalkan pembacaan, penulisan, dan penyimpanan atribut. Banyak runtime produksi memiliki kasus khusus yang kompleks dan spesifik domain, sementara banyak tulisan blog hanya memberikan gambaran tingkat tinggi tanpa detail implementasi.

Penulis membangun di atas A Simple Object Model karya CF Bolz-Tereick, yang memodelkan Python dengan tingkat kesetiaan yang memadai. Alih-alih membahas mekanisme kelas dan metode, penulis berfokus pada atribut instance dan bagian map, lalu menyusun sistem map yang sederhana dan bersih dalam kurang dari 500 baris kode yang dapat dipahami pembaca sekaligus.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing