Revisi Tiga: Blok Terkompresi Kirim
Dalam versi aplikasi ini, blok terkompresi mengirim data digunakan. Perubahan ini menghasilkan peningkatan performa yang signifikan.
BYTE tmp[3*ROWS*COLS];
FIELD Old = Map;
ComputeNext( Map );
n=Compact(Map,Old,tmp);
bind( s, ... );
connect( s, ... );
send( s, tmp, 3*n );
//can't do recv(s,tmp,n)
for(int i=0; i < n; )
recv( s, tmp+i, n-i );
closesocket( s );
Perubahan dalam Versi ini
Versi ini mencerminkan perubahan berikut:
- Pembaruan sel tidak lagi diserialisasikan.
- Karena pengiriman blok digunakan, aplikasi tidak lagi cerewet.
- Pemadatan data digunakan, menghasilkan aplikasi yang lebih sedikit lemak.
Masih ada masalah dengan versi aplikasi ini; risiko kebuntuan ada karena pengiriman besar digunakan tanpa penerimaan. Server mengirimkan satu byte untuk setiap 3 byte yang diterima. Ini dapat menyebabkan kebuntuan jika ukuran buffer penerima kurang dari 1000 byte untuk aplikasi sampel ini.
Metrik Performa Utama
Metrik performa berikut dinyatakan dalam Waktu Pulang Pergi (RTT), Goodput, dan Overhead Protokol. Lihat topik Terminologi Jaringan untuk penjelasan tentang istilah-istilah ini.
Versi ini mencerminkan metrik performa berikut:
- Waktu Sel — .002*RTT
- Goodput — 2 Kilobyte/RTT
- Overhead Protokol — 14%
Dari overhead 14%, 6% berasal dari header Ethernet dan 8% lainnya berasal dari startup koneksi dan teardown.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk