Optimasi tanpa pengukuran hanya spekulasi. Kita akan memahami cara Python mengelola memori, memprofil program dengan cProfile, membaca kompleksitas algoritma, dan mengetahui kapan optimasi memang layak dilakukan.
Pahami cara Python menyimpan object di heap, overhead tiap object, kerja pymalloc, dan siklus pembebasan memorinya.
Buka → # Reference Counting dan Garbage CollectionBedah reference counting, kegagalan siklus, garbage collector generasional, jebakan __del__, dan peran weakref.
Buka → # Profiling dengan cProfileTemukan hotspot program dengan cProfile dan pstats: baca kolom ncalls, tottime, dan cumtime dengan benar.
Buka → # BenchmarkingUkur kecepatan kode secara jujur dengan timeit, pilih perf_counter, dan baca derau hasil pengukuran.
Buka → # Time Complexity dan Big-OBaca notasi Big-O dari O(1) sampai O(n²) beserta tabel pertumbuhan dan bukti pengukuran nyata di Python.
Buka → # Optimasi AlgoritmaMenangkan performa lewat perbaikan algoritma: ganti O(n²) dengan O(n), pilih struktur data, dan prekomputasi.
Buka → # CachingHemat kerja berulang dengan functools.lru_cache: pahami cache_info, jebakan argument mutable, dan invalidasi.
Buka → # Generators untuk Memory EfficiencyProses data besar dengan memori kecil: list vs generator, baca file baris per baris, dan pipeline generator.
Buka → # Memahami Memory ProfilingLacak alokasi memori dengan tracemalloc, temukan kebocoran dengan compare_to, dan pahami kebocoran ala Python.
Buka → # Kapan Mengoptimalkan ProgramDisiplin sebelum optimasi: kutipan Knuth, aturan 90/10, tangga prioritas, dan kapan boleh berhenti.
Buka →