Count Up Timer Microseconds C#: Penting Untuk Pencatatan Waktu

Halo semua! Bagaimana kabar kalian? Semoga sehat selalu.

Di artikel kali ini saya ingin mengajak kalian untuk mencoba salah satu Constructors yang berfungsi menghitung waktu dengan skala yang cukup akurat. Fungsi atau Constructors ini umumnya digunakan untuk mengetahui atau menentukan lama waktu eksekusi aplikasi, untuk menghitung kinerja data, atau yang lain yang berhubungan dengan perhitungan waktu. Constructors tersebut adalah Stopwatch().

Stopwatch() bekerja dengan memanggil Method Start() dan berhenti dengan memanggil Method Stop(). Setelah itu akan didapatkan hasil lama waktu eksekusi Stopwatch() untuk diolah kembali atau ditampilkan di layar.

Oke biar gak kepanjangan, langsung aja kita ke contoh kode programnya. Disini saya menggunakan program yang sudah ada, saya anggap teman-teman paham cara membuat project dst.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Timers;
using System.Diagnostics;

private void cipher_start()
{
    byte[] key = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

    for (int i = 0; i < 30; i++)
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        init_grain(key, iv);

        /* initialize grain and skip output */
        init_rounds = 1;
        for (int x = 0; x < 256; x++)
        {
            next_z();
        }

        init_rounds = 0;
        generate_keystream();
        string frameCipher = BitConverter.ToString(keystream);

        stopwatch.Stop();

        listBox1.Invoke(new MethodInvoker(delegate ()
        {
            listBox1.Items.Add(stopwatch.Elapsed.TotalSeconds + "," + frameCipher.ToString());
        }));
    }
}

Contoh program di atas adalah sebuah kode program algoritma enkripsi yang saat itu saya ingin tahu seberapa cepat algoritma tersebut dalam membentuk sebuah kunci. Dengan menggunakan Stopwatch(), saya dapat mengetahui seberapa cepat algoritma membentuk sebuah kunci hingga proses penguncian atau mengenkripsi sebuah data. Kalian bisa menggunakan program kalian sendiri yang ingin kalian tahu seberapa cepat program kalian.

Berikut ini adalah contoh hasil dari penggunaan Constructor Stopwatch() dari potongan kode program di atas:

Angka yang ditandai dengan kotak warna merah adalah catatan waktu dari tiap item yang tertera. Disitu tercatat waktu hingga dua angka 0 di belakang koma.

Penjelasan:

Ada 2 bagian utama yang dibutuhkan agar dapat menggunakan Constructor Stopwatch(). Pertama ada di baris pertama tentunya, dan kedua ada di baris ke-12. Jika itu tidak ditambahkan/dituliskan terlebih dahulu, maka Stopwatch() tidak dapat dipanggil.

Kemudian lompat ke baris 21 adalah inisiasi variabel baru stopwatch. Lalu di baris ke-22 seperti yang saya katakan tadi bahwa untuk memulai penghitungan waktu, kita mesti memanggil Method Start(). Untuk menyelesaikan atau menghentikan proses penghitungan waktu kita panggil Method Stop() yang ada di baris ke-36.

Di antara Method Start() dan Stop() adalah subrutin program yang ingin dihitung/diketahui lama waktu proses/eksekusinya. Yaitu dari baris ke-23 hingga baris ke-34. Setelah penghitungan waktu selesai maka proses selanjutnya yaitu menampilkan waktu yang didapat. Pada contoh kode program di atas, saya ingin menampilkannya di ListBox. Maka saya tuliskan seperti yang ada pada baris ke-40.

Pada baris ke-40 terdapat properties yang mengikuti variabel konstruktor stopwatch yaitu Elapsed yang memberikan catatan waktu dalam satuan detik. Apabila waktu yang tercatat di bawah 1 detik maka hasilnya akan ditampilkan seperti gambar contoh hasil di atas. Jika ingin mendapatkan waktu dengan skala mikrodetik, kalian bisa mengkalikannya dengan 1.000.000 (satu juta). Karena dalam 1 detik = 1 juta mikrodetik. Namun jangan kaget jika hasilnya adalah angka mentah seperti 94329745. Kalian tinggal balikkan saja dengan membaginya dengan 1 juta.

Baik, demikian artikel sederhana ini, kurang lebihnya saya mohon maaf. Semoga bermanfaat dan

Terima Kasih

Referensi:

Posting Komentar

0 Komentar