Перейти к содержимому

Pipeline dan Pipe-and-Filter: Streaming vs Batch di Python | Arsitektur Perangkat Lunak

Alfa Yohannis

0:00 / 0:00

Pipeline dan Pipe-and-Filter: Streaming vs Batch di Python | Arsitektur Perangkat Lunak

19 просмотров · 3 нед. назад
Alfa Yohannis
186 подписчиков
19 просмотров · 3 нед. назад
Pengolah foto yang mulus pada 30 file justru kehabisan memori pada belasan ribu file. Sebabnya ada pada cara stage pipeline disambung: batch atau streaming. Pertemuan mata kuliah Arsitektur Perangkat Lunak ini membahas pipeline, yang juga dikenal sebagai pipe-and-filter. Satu pekerjaan dipecah menjadi deretan stage kecil yang disambung berurutan. Filter mengubah data, sedangkan pipe hanya menyambung. Keduanya dipertemukan oleh contract, yaitu kesepakatan bentuk data yang boleh lewat: satu iterable masuk dan satu iterable keluar. Seluruh pembahasan memakai satu contoh, yaitu 60 foto dari Lorem Picsum yang diseragamkan menjadi beberapa resolusi baku bertanda air dengan Python dan Pillow. Setiap klaim diuji dengan pengukuran nyata. Dari lima filter yang ada, automated check tidak menemukan satu pun yang menyebut filter lain. Urutan Resize dan Watermark ditukar, lalu kedua susunan dijalankan 100 putaran dan sidik SHA-256 file keluarannya dibandingkan. Jalur streaming dan batch dibandingkan lewat first output latency dan puncak Resident Set Size (RSS). Materi dalam video ini: Pembagian kerja filter, pipe, dan contract pada pipe-and-filter Asal-usul pipeline di Unix tahun 1972 atas usulan Douglas McIlroy, sampai kelas Pipeline di scikit-learn Pipeline baku: ubah mode ke RGB, Resize 800 piksel, Watermark, lalu SaveJpeg berkualitas 85 Dua wujud filter di dalam kode: fungsi generator dengan yield dan kelas yang dapat dipanggil Class diagram tanpa panah antar filter, sehingga urutan stage dapat ditukar tanpa menyunting filter Wrapper Counter dan automated check untuk mengukur filter independence Analogi lini pengolahan buah dengan conveyor belt Stage reordering: urutan Resize dahulu menang 88 dari 100 putaran, tetapi selisihnya hanya 0,0219 detik dan sidik file keluarannya berbeda Cara membaca diagram kotak dan kumis, range, serta uji tanda untuk menilai selisih yang kecil Fan-out dengan itertools.tee dan merge dengan itertools.chain: 60 foto dibaca sekali menjadi 180 file dalam tiga resolusi Sequence diagram percabangan dan peran alpha channel pada tanda air Kasus kegagalan jalur batch pada sistem penerimaan mahasiswa baru, dengan kebutuhan memori sekitar 64 GiB untuk 12.000 foto Streaming vs batch: median file pertama 83,1 ms melawan 792,8 ms, puncak RSS 118,4 MiB melawan 576,8 MiB Persiapan venv dan tiga latihan: filter independence, stage reordering, serta first output latency dan memori Pesan utamanya, pipeline tidak otomatis membuat program lebih cepat. Pipeline memindahkan keputusan ke satu tempat di luar filter, yaitu urutan stage, titik percabangan, dan cara penyambungan. Langkah lengkap, tabel contoh yang sudah terisi, dan lembar isian latihan tersedia di modul Bab 6. #ArsitekturPerangkatLunak #SoftwareArchitecture #PipeAndFilter #Pipeline #Python #Streaming #BatchProcessing #ImageProcessing #Pillow #DataPipeline