From 478c4d6a36480a25ec6e580efd1c2c08f854719b Mon Sep 17 00:00:00 2001 From: Noval Agung Date: Sun, 17 May 2020 07:52:59 +0000 Subject: [PATCH] rename images path --- A-concurrency-pipeline.md | 6 +++--- A-go-vendoring.md | 2 +- A-pipeline-context-cancellation.md | 6 +++--- A-simplified-fan-in-fan-out-pipeline.md | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/A-concurrency-pipeline.md b/A-concurrency-pipeline.md index d02b4f99a..e29b2a1da 100644 --- a/A-concurrency-pipeline.md +++ b/A-concurrency-pipeline.md @@ -146,7 +146,7 @@ O iya untuk logging pembuatan file saya tampilkan setiap 100 file di-generate, a Oke, generator sudah siap, jalankan. -![Generate dummy files](images/A_concurrency_pipeline_1_generate_dummy_files.png) +![Generate dummy files](images/a_concurrency_pipeline_1_generate_dummy_files.png) Bisa dilihat sebanyak 3000 dummy file di-generate pada folder temporary os, di sub folder `chapter-A.59-pipeline-temp`. @@ -246,7 +246,7 @@ Cukup panjang isi fungsi ini, tapi isinya cukup *straightforward* kok. Semoga cukup jelas. Kalo iya, jalankan programnya. -![Generate dummy files](images/A_concurrency_pipeline_2_rename_sequentially.png) +![Generate dummy files](images/a_concurrency_pipeline_2_rename_sequentially.png) Selesai dalam waktu **1,17 detik**, lumayan untuk eksekusi proses sekuensial. @@ -525,7 +525,7 @@ Kita lakukan perulangan terhadap channel tersebut, lalu hitung jumlah file yang Ok, sekarang program sudah siap. Mari kita jalankan untuk melihat hasilnya. -![Rename file concurrently](images/A_concurrency_pipeline_3_rename_concurrently.png) +![Rename file concurrently](images/a_concurrency_pipeline_3_rename_concurrently.png) Bisa dilihat bedanya, untuk rename 3000 file menggunakan cara sekuensial membutuhkan waktu `1.17` detik, sedangkan dengan metode pipeline butuh hanya `0.72` detik. Bedanya hampir **40%**! dan ini hanya 3000 file saja, bayangkan kalau jutaan file, mungkin lebih kerasa perbandingan performnya. diff --git a/A-go-vendoring.md b/A-go-vendoring.md index c7d99cf97..7f4d5a8d4 100644 --- a/A-go-vendoring.md +++ b/A-go-vendoring.md @@ -40,7 +40,7 @@ func main() { Setelah itu jalankan command `go mod vendor` untuk vendoring *3rd party library* yang dipergunakan, dalam contoh ini adlah gubrak. -![Vendoring](images/A_go_vendoring_1_vendor.png) +![Vendoring](images/a_go_vendoring_1_vendor.png) Bisa dilihat, sekarang library gubrak *source code*-nya disimpan dalam folder `vendor`. Nah ini juga akan berlaku untuk semua *library* lainnya yg digunakan jika ada. diff --git a/A-pipeline-context-cancellation.md b/A-pipeline-context-cancellation.md index efa945872..205f4cf91 100644 --- a/A-pipeline-context-cancellation.md +++ b/A-pipeline-context-cancellation.md @@ -176,7 +176,7 @@ func createFiles(chanIn <-chan FileInfo, numberOfWorkers int) <-chan FileInfo { Hasil eksekusi program: -![Concurrent without cancellation](images/A_pipeline_context_cancellation_1_concurrent_without_cancellation.png) +![Concurrent without cancellation](images/a_pipeline_context_cancellation_1_concurrent_without_cancellation.png) ## A.61.3. Program Generate Dummy File *Concurrently* dan Mekanisme *Cancellation* @@ -414,13 +414,13 @@ Penambahannya juga sama seperti fungsi-fungsi yang lain, yaitu dengan menambahka Jalankan program ke-dua, lihat hasilnya. Karena sebelumnya kita sudah set durasi timeout adalah **3 detik**, maka jika proses belum selesai sebelum durasi tersebut akan di-cancel secara paksa. -![Context timeout](images/A_pipeline_context_cancellation_2_context_timeout.png) +![Context timeout](images/a_pipeline_context_cancellation_2_context_timeout.png) Cukup mudah bukan? Silakan coba modifikasi durasinya dengan nilai lebih besar, misalnya **15 detik**, lalu coba jalankan. -![Concurrent without cancellation](images/A_pipeline_context_cancellation_1_concurrent_without_cancellation.png) +![Concurrent without cancellation](images/a_pipeline_context_cancellation_1_concurrent_without_cancellation.png) Bisa dilihat, di gambar di atas, jika program selesai sebelum **15 detik** maka aman. diff --git a/A-simplified-fan-in-fan-out-pipeline.md b/A-simplified-fan-in-fan-out-pipeline.md index 9bbc32f9f..e916db194 100644 --- a/A-simplified-fan-in-fan-out-pipeline.md +++ b/A-simplified-fan-in-fan-out-pipeline.md @@ -101,7 +101,7 @@ Pada bagian fungsi `generateFiles()` kali ini sedikit berbeda dibanding sebelumn Kita lanjut dulu saja. Berikut adalah output jika program di atas di-run. -![Generate dummy files sequentially](images/A_simplified_fan_in_fan_out_pipeline_1_generate_dummy_files_sequentially.png) +![Generate dummy files sequentially](images/a_simplified_fan_in_fan_out_pipeline_1_generate_dummy_files_sequentially.png) ## A.60.3. Program Generate Dummy File *Concurrently* @@ -325,13 +325,13 @@ Saya akan coba jalankan program pertama dan kedua, lalu mari kita lihat perbedaa #### • Program Generate Dummy File *Sequentially* -![Generate dummy files sequentially](images/A_simplified_fan_in_fan_out_pipeline_2_benchmark.png) +![Generate dummy files sequentially](images/a_simplified_fan_in_fan_out_pipeline_2_benchmark.png) Testing di awal chapter ini hasilnya butuh sekitar **19 detik** untuk menyelesaikan generate dummy files sebanyak 3000 secara sekuensial. Tapi kali ini lebih lambat, yaitu **23 detik** dan ini wajar, karena di tiap operasi kita munculkan log ke stdout (via `log.Println()`). #### • Program Generate Dummy File *Concurrently* -![Generate dummy files concurrently](images/A_simplified_fan_in_fan_out_pipeline_3_concurrent.png) +![Generate dummy files concurrently](images/a_simplified_fan_in_fan_out_pipeline_3_concurrent.png) Bandingkan dengan ini, **3 detik** saja! luar biasa sekali bukan beda performanya. Dan pastinya akan lebih cepat lagi kalau kita hapus statement untuk logging ke stdout (`log.Println()`).