Kode NumPy yang menghasilkan angka yang sama dapat berbeda jauh kecepatan dan konsumsi memorinya. Section ini membahas cara mengukur waktu eksekusi secara adil, memahami memory layout dan strides, serta dampak contiguous layout terhadap kecepatan akses. Kita juga membahas pemilihan dtype yang hemat memori, cara menghindari penyalinan tak perlu, dan menutup dengan batasan NumPy agar keputusan arsitektur tetap tepat.

# Mengukur Waktu Eksekusi

Mengukur durasi kode NumPy secara adil dengan time.perf_counter dan timeit serta menjaga pengukuran tetap andal.

Buka →
# Memahami Memory Layout

Mengenal susunan data C-order dan F-order di memori serta pengaruhnya terhadap kecepatan operasi.

Buka →
# Contiguous vs Non-contiguous

Membedakan array contiguous dan non-contiguous lewat flags dan melihat dampaknya pada performa.

Buka →
# Strides dan Memory Access

Membaca atribut strides untuk memahami cara NumPy melangkah di memori saat mengakses elemen.

Buka →
# Mengurangi Penggunaan Memori

Menekan konsumsi memori array lewat pemilihan dtype, operasi in-place, dan penghapusan data tak terpakai.

Buka →
# Memilih dtype yang Efisien

Menghemat memori dan waktu dengan dtype yang tepat: int32 vs int64, float32 vs float64, dan trade-off presisinya.

Buka →
# Menghindari Copy Array

Mengenali operasi yang menyalin data dan menerapkan kebiasaan view serta out untuk menghemat pekerjaan.

Buka →
# Vectorization vs Loop

Mengukur selisih performa loop dan vectorization pada berbagai ukuran data untuk menentukan kapan vektorisasi menguntungkan.

Buka →
# Optimasi Operasi Array

Merangkai pola optimasi praktis: kurangi array sementara, manfaatkan out, gabungkan operasi, dan ukur ulang.

Buka →
# Kapan NumPy Bukan Pilihan Terbaik

Mengenali situasi ketika NumPy kurang pas: data lebih kecil dari biaya overhead, data sangat besar, atau struktur tak beraturan.

Buka →
# BLAS Threading dan Lingkungan Eksekusi

Memahami peran BLAS di balik operasi matriks, mengontrol thread dengan variabel lingkungan, dan menghindari oversubscription.

Buka →