Berapa banyak tambahan overhead yang dihasilkan ketika mengirim file melalui web service sebagai byte array?

Ini tanya jawab menunjukkan cara mengirim file sebagai byte array melalui layanan XML web. Berapa banyak biaya overhead yang dihasilkan dengan menggunakan metode ini untuk transfer file? Saya asumsikan data-data yang terlihat seperti ini:

<?xml version="1.0" encoding="UTF-8" ?>
<bytes>
    <byte>16</byte>
    <byte>28</byte>
    <byte>127</byte>
    ...
</bytes>

Jika format ini adalah benar, byte pertama harus dikonversi ke UTF-8 karakter. Masing-masing karakter ini mengalokasikan 8 byte. Ini adalah byte yang disimpan dalam basis 10, hex, atau biner karakter? Berapa banyak yang lebih besar apakah file yang muncul seperti itu dikirim karena XML data dan pengkodean karakter? Kompresi dibangun ke layanan web?

Larutan

Biasanya byte array dikirim sebagai base64 encoded string, bukan sebagai individu byte dalam kategori.

http://en.wikipedia.org/wiki/Base64

The base64 dikodekan versi tentang 137% ukuran asli konten.

Komentar (0)

Saya menggunakan metode ini untuk beberapa internal perusahaan web services, dan saya belum't melihat semua jurusan lambat-downs (tapi itu doesn't berarti itu's tidak ada).

Anda mungkin bisa menggunakan salah satu dari banyak lalu lintas jaringan alat-alat analisis untuk mengukur ukuran data, dan membuat keputusan berdasarkan itu.

Komentar (0)

I'm tidak yakin tentang semua rincian (mengompresi, encoding, dll) tapi saya biasanya hanya menggunakan WireShark untuk menganalisa lalu lintas jaringan (sambil mencoba berbagai metode) yang kemudian memungkinkan anda untuk melihat persis bagaimana hal itu's dikirim.

Misalnya, jika itu's compressed blok data paket tidak't dapat dibaca sebagai teks biasa...namun jika itu's terkompresi, anda hanya akan melihat plain old teks xml...seperti yang anda akan melihat dengan lalu lintas HTTP, atau bahkan FTP dalam kasus-kasus tertentu.

Komentar (0)

Echo apa yang Kevin mengatakan, dalam .net web services jika anda memiliki sebuah array byte dikirim sebagai base64 encoded string secara default. Anda juga dapat menentukan encoding dari byte array terlebih dahulu.

Jelas, setelah masuk ke server (atau klien) yang anda butuhkan untuk secara manual men-decode string kembali ke byte array seperti ini isn't dilakukan otomatis untuk anda sayangnya.

Komentar (0)

Kinerja utama hit isn't akan menjadi dari transfer file disandikan, it's akan berada dalam pengolahan bahwa server telah dilakukan untuk menyandikan file pra-transfer (kecuali file don't sering berubah-ubah dan dikodekan versi yang dapat di-cache entah bagaimana).

Komentar (0)